Threads for yellow

  1. 2

    I think this advice could be more language-specific. For instance, exceptions can be pretty dangerous in C++, but less-so in Python.

    [1] https://google.github.io/styleguide/cppguide.html#Exceptions

      1. 4

        To accept these terms, you must be enrolled to make regular payments through any of the payment platforms pages listed above, in amounts qualifying you for a tier that includes a “patron license” or otherwise identifies a license under these terms as a reward.

        How long does one have to be a patron? Indefinitely?

        1. 2

          Yes. Your license terminates if you stop being a patron.

        2. 2

          It does not seem to have been written or edited by a lawyer. The language is rather weak and I would be extremely hesitant to use this for anything of value.

          1. 3

            It was written by a lawyer who specialises in software licensing, @kemitchell.

            1. 3

              It does not seem to have been written or edited by a lawyer.

              Made my day.

              The language is rather weak and I would be extremely hesitant to use this for anything of value.

              What strikes you as weak about the language?

              1. 1

                most free software legalese is excessive in it’s verbosity.

            1. 2

              Lots of programs add stuff to .zshrc that end up bloating the start time. Good to see a technique for reducing it.

              1. 1

                Off topic but colored footnotes in the sidebar are quite nice.

                1. 12

                  Mastodon

                  Too power hungry for my taste. No easy way to host inside docker, which made it a pain to keep running. I’m very happy with Fosstodon, and don’t see a reason to switch to a self-hosted instance any time soon.

                  I run an instance too and agree it’s too power hungry. Just the RAM requirements are a bit excessive. Ruby seems to use a lot, as does Postgres and elasticsearch (not required, but needed if you want good searchability)

                  1. 12

                    There’s also a newer implementation of an activitypub server at https://docs.gotosocial.org/en/latest/

                    1. 6

                      I’ve been running a node from under my desk and I gotta say I’ve been really impressed with the ease of installation and the responsiveness of the dev team. Everything that I ran into was due to generic self-hosting problems like dynamic DNS and hairpin routing, gotosocial itself hasn’t given me any trouble.

                      1. 2

                        This is what I use to run my server on, I have a server that could run Mastodon but it’s so fiddly to setup and operate that I never bothered. GtS on the other hand is extremely easy to run and they are very quickly (surprisingly so) adding features to give it parity with Mastodon.

                        1. 2

                          What I’m waiting for is a “migrate from Pleroma to GTS” guide. I can probably figure it out but it looks like a mountain of faff and pain that my brain fog prevents right now.

                        2. 8

                          There’s also Honk! if you’re willing to go SUPER minimalist.

                          I’m with the OP as well. I ran a Mastodon instance of my own for a bit less than a year, and after a few iterations of Rails migrations, the back-end and the front-end refused to speak and nobody could figure out why so I gave up :)

                          1. 5

                            Have you considered swapping to pleroma? If I were to host a fediverse node, I’d try that first, looking at the current shape right now.

                            I think you can even graft the slick mastodon frontend to a pleroma backend.

                            1. 15

                              For people like me who would never consider Pleroma because of their, um, politics, it’s worth noting there is a hard fork called Akkoma that is working to save the technology from its toxic community: https://coffee-and-dreams.uk/development/2022/06/24/akkoma.html

                              https://akkoma.dev/AkkomaGang/akkoma/

                              I can’t promise they’re better, not having personally used Pleroma or interacted with either dev community directly, but I’m cautiously optimistic.

                              They’ve put a Code of Conduct in place too: https://akkoma.dev/AkkomaGang/akkoma/src/branch/develop/CODE_OF_CONDUCT.md​

                              the community must create an environment which is safe and equitable

                              1. 3

                                …I’ve never seriously considered getting involved in fediverse dev (mastodon is no better for my mental health than twitter is), but I have to admit that hacking on Akkoma sounds fun. I’ve been wanting a good excuse to get into Elixir/Erlang’s ecosystem more.

                                1. 7

                                  I did some development on Pleroma back before their dev team got overtaken by shitlords, and I have to say I was impressed with how approachable it was. I’ve never done Elixir before but I have some dusty experience with Erlang and some very dusty experience with Rails and everything seemed to fit together in a sensible way, kind of what I wish Rails could have been. I wrote about my experience here: https://technomancy.us/191

                                2. 4

                                  I have great difficulty understanding the approach of “this tool is made by people I don’t like so I will deny myself the utility of this tool”.

                                  1. 21

                                    It’s possible that part of your confusion is that with an open source project, it is often possible to use the software without directly giving the developers money or other obvious support. But this seems unwise if you want the software to continue to be developed and maintained, as most users of software do. And if you engage in less monetary ways like filing bug reports, you then have to interact with the people you do not like.

                                    Fortunately this is a demonstration of one strength of FOSS, the right to fork: people who do not want to work with the Pleroma developers can take the codebase and go their own way, as Akkoma seems to be doing. Why spend time with people you don’t get along with, if you could just… not?

                                    1. 12

                                      People who write open source software write it, primarily, for themselves. It will end up optimised for their use cases. If they are interested in creating a society that is antithetical to one in which I want to live then, pragmatically, they will probably evolve the software in directions that I dislike.

                                      1. 4

                                        This seems like quite a bit of a stretch. Perhaps for social media, since different groups have different ideas on how to regular discourse, but vast amounts of software don’t fall in this bucks.

                                        If libpng was written by Hitler, it still does the job.

                                        This divisive attitude leaking (primarily?) out of America is seriously not healthy. For better or worse, people you do not agree with will not simply disappear. If we stop talking, all that is left is violence.

                                        1. 10

                                          If libpng was written by Hitler, it still does the job.

                                          It does run the same, yes. But as skyfaller was saying, if you want to report a bug or send a patch, you depend on Hitler. Unless you fork. I don’t think such an extreme example serves your argument well.

                                          This divisive attitude leaking (primarily?) out of America is seriously not healthy. For better or worse, people you do not agree with will not simply disappear. If we stop talking, all that is left is violence.

                                          Case in point: out-of-context, I would like to agree with this. But now that you mentioned Hitler, I have to remind you that western democraties actually kept talking with him until very late in the 30s. It didn’t stop the violence.

                                          1. 3

                                            Most people are not Hitler, and we all know it. It was hyperbole for effect, and we all know that too. I feel you’re intentionally missing my obvious point.

                                            The vast majority of your (likely) fellow Americans who you disagree with are not bad people. This is a deeply unhealthy perspective that will only make things worse, and outside this argument you surely know this too.

                                            You’ll forgive me if I bow out now.

                                          2. 5

                                            If libpng was written by Hitler, it still does the job.

                                            This isn’t about libpng; it’s about Pleroma, which is a social media tool.

                                            It turns out when these kinds of people have atrocious opinions about minorities, they tend to also have bad ideas about moderation and harassment; they only care about the use cases that matter to straight white males.

                                            I think it’s a bad idea to run social software that’s written by people who don’t care about moderation and protecting their users.

                                            1. 4

                                              they only care about the use cases that matter to straight white males.

                                              Citation needed please.

                                              I think it’s a bad idea to run social software that’s written by people who don’t care about moderation and protecting their users.

                                              Social software is about bringing people together, right? Moderation and protecting users is about keeping people apart. I’ll cheerfully admit that there are reasons we keep people apart, but if the criteria is “software to bring people together” it seems obvious to me that the more laid-back software is the way to go.

                                              The platonic ideal of protecting users is putting them in a box by themselves.

                                              1. 7

                                                Social software is about bringing people together, right? Moderation and protecting users is about keeping people apart.

                                                This kind of simplistic thinking is exactly the kind of thing that would be an enormous red flag if I was evaluating social media servers and I heard one of the maintainers saying it.

                                                1. 4

                                                  Sure, but you’ve neither explained why it’s incorrectly simplistic nor why it’s a red flag (nor justified your lazy dig at “straight white males”).

                                                  I’ll drop it, but if you want to have a discussion of substance DMs are always open. :)

                                  2. 4

                                    Ruby seems to use a lot

                                    I think it’s mostly rails actually. Ruby has a bit of a bad reputation when it comes to performance, when it’s mostly rails. In that area, other than JS always used to do the best, and compared to language implementations like Python it’s quite fast.

                                    At least it was like that ages ago, when someone told me they want to rewrite some big project thinking switching away from Ruby would somehow magically make things faster.

                                    1. 2

                                      I’ve never heard of Ruby being described as ‘quite fast’ compared to Python. Way back in the Ruby 1.8 days, Python was faster, but they’re now more or less neck and neck in terms of performance. Ruby got a bad reputation because of how slow its AST-based interpreter was back in the day.

                                      On the other hand, JavaScript (specifically V8) and PHP are faster than both.

                                      1. 1

                                        Yeah, I think you’re right. I don’t know much about either, but just going off what I see in top

                                    1. 5
                                      1. Can’t sent email addresses be spoofed pretty well?
                                      2. I’m that one luser who doesn’t send click “mailto” links because that opens the mac email client, which I don’t use.
                                      1. 2

                                        Can’t sent email addresses be spoofed pretty well?

                                        Yes and no: With DMARC / DKIM, you can ensure that the message came from the server that it claims to. The server might be incorrectly configured. Without, this is far harder to verify.

                                        Note that you also need DNSSEC on the DKIM records, otherwise an attacker who can intercept and spoof DNS can give the server a fake public key and then send a spoofed message with the corresponding private key.

                                        I’m that one luser who doesn’t send click “mailto” links because that opens the mac email client, which I don’t use.

                                        This is an interesting use case. One of the problems with mailto links is that they’ll usually open with the default mail client (no idea why you’ve set the default to the one that you don’t use), but a lot of people they have separate work and personal accounts and use separate clients (especially if they’re web-based ones). It’s quite likely that they’d open with one that wasn’t the one that they wanted to log in with and then they’d wonder why logging in didn’t work.

                                        1. 2

                                          Yes and no: With DMARC / DKIM … DNSEEC … DKIM

                                          The waterfall of multi-letter acronyms I’ve been reading in all these discussions suggests to me this will be trouble.

                                          no idea why you’ve set the default to the one that you don’t use

                                          I think the simplest explanation here is the correct one: I didn’t bother to change the default because I don’t use mailto: links and I use webmail.

                                          My computer is a tool, not a home. I don’t spend much time decorating it just right. If the default isn’t right for me, I’m not going to waste time discovering what the right setting is.

                                          I have a sneaking suspicion this is the most common user persona.

                                        2. 1
                                          1. is somewhat addressed in the article
                                          1. 1
                                            1. That’s what DMARC (with SPF+DKIM) solve.
                                            2. Configure your Mac. :)
                                          1. 22

                                            Well, they brought MagSafe back, and the M1 chips are almost unbelievably good, so current state = good. The worst thing I can say is most all their screens are 60 Hz.

                                            I would recommend the cheapest M2 laptop they offer, and maybe some SD cards (some folks think the storage is small).

                                            1. 6

                                              I think all of the M1/M2 macbooks have ProMotion (120hz) displays

                                              1. 14

                                                The 14” and 16” M1 MacBook Pros have ProMotion displays. The 13” M2 MacBook Pro and the M1/M2 MacBook Air do not.

                                                1. 2

                                                  My M1 macbook pro does not have promotion. it’s 60hz, non HDR. still a very good panel though.

                                                2. 4

                                                  Totally agreed on everything but the “cheapest” if only because the SSDs were changed from 2 separate chips down to 1 which makes read and write performance noticeably slower.

                                                  1. 2

                                                    If you go with SD cards be sure to check the speeds as well, since there are still very slow SD cards being sold.

                                                  1. 2

                                                    Makes me really want to take up fuzzing…!

                                                    Makes me wonder why it’s not more in the population’s thoughts of top tools, right beside unit tests… Seems priceless to be able to test all possible inputs

                                                    1. 1

                                                      There is an interesting startup addressing this. Kinda wish I came up with it first.

                                                      https://fuzzbuzz.io/

                                                    1. 7

                                                      For anyone wondering, the latest LTS commercially is 5.15.8. The Qt Company is mandated by the agreement they have with KDE to release all the Qt versions they release as open source no later than 12 months before they released the commercial one. This is the reaction to that, Qt 5.15.3 LTS was released last year.

                                                      1. 2

                                                        If development is happening in private branches, does this mean that there are no contributors to Qt from the wider community?

                                                        1. 1

                                                          The KDE project contributes, but the Venn diagram of KDAB or Qt employees and KDE contributers has quite some overlap AFAIK.

                                                          But, effectively after their LTS change, your contributions only make the CEO’s Yacht larger, no reason to do so because no-one benefits except for them.

                                                        2. 1

                                                          I seem to remember some drama a while ago regarding the KDE agreement - whatever happened to that?

                                                          1. 2

                                                            This release is a direct consequence of that agreement. I did a small write-up with some backstory and back links: https://raymii.org/s/blog/Qt_5.15.3_OpenSource_released.html - if I would submit it as a post the @pushcx would merge it with reason “merging hot take into main story”.

                                                            1. 1

                                                              Wow, that makes me really want them to forget to do an open source release. A BSD-licensed Qt would be amazing.

                                                        1. 35

                                                          Why did GitHub remove his account/projects?

                                                          1. 44

                                                            That’s the part that bothers me.

                                                            I understand it wasn’t a nice thing to do, and that people are upset, but it’s his own code in his own repos. He even announced ahead of time he would do something like this, so “buyer” beware.

                                                            I realize GitHub TOS covers them to remove accounts and repos at their discretion, but it’s a little unsettling that they’ll actually do so arbitrarily without a clear TOS violation. It might be time I move everything to Sourcehut and treat GitHub as a mirror…

                                                            1. 24

                                                              It might be time I move everything to Sourcehut…

                                                              The Sourcehut guy has always seemed a little unstable to me (didn’t he get banned from this site, in fact?) So, why would I trust him any more than I trust GitHub?

                                                              1. 33

                                                                I banned him and I would not call him unstable. Not just because that kind of insult is inappropriate here, but because it obviously doesn’t apply. He writes inflammatory hyperbole that’s not a good fit for this site, but he’s a skilled, accomplished professional who looks like he’s seeing a lot of success in his life.

                                                                1. 11

                                                                  I didn’t mean to insult him. Maybe “erratic” would have been a better word without any mental health connotations (which I absolutely didn’t intend)? Poor word choice on my part, I’m sorry for that.

                                                                  …but he’s a skilled, accomplished professional who looks like he’s seeing a lot of success in his life.

                                                                  Sure, same goes for the GitHub guys. A person who can’t tone it down enough to keep a Lobsters account just isn’t someone I feel I can trust to host my code, particularly given that he’s in charge of the whole operation. Obviously everyone is free to decide who to trust and for what reasons.

                                                                  1. 9

                                                                    A person who can’t tone it down enough to keep a Lobsters account just isn’t someone I feel I can trust to host my code

                                                                    Bear in mind, Linus Torvalds would also probably have been banned from here multiple times in the past.

                                                                    I’d be perfectly happy to trust someone that volatile a lot (and I guess I do, running Linux since 1996 :) ). But I would be careful which groups and forums I invited them to :)

                                                                    1. 2

                                                                      …I guess I do, running Linux since 1996

                                                                      Very different, at least to me. If Linux was a service, control would have been taken away from Linus a long time ago (I mean, as it is they made him step back for awhile to work on his issues). But it’s not, it’s just code that other people then build into something, often applying patches in the process. If Linus had a meltdown there is already sufficient infrastructure in place that the vast majority of us wouldn’t even notice.

                                                                      I wouldn’t trust a code hosting service Linus ran by himself either.

                                                                      1. 1

                                                                        Nobody made Linus step back. He recognized that he had issues and took a sabbatical to deal with them himself. Are you saying you wouldn’t trust a service by a guy who has been diligently working on the same project for 30 years? Not to mention the guy who invented the base of all of the services discussed in this thread.

                                                                        Why do people assume that “Bigger is better” when it comes to web services? The two most reliable services I use are Pinboard, run by an insanely opinionated and outspoken developer, and NewsBlur, who was, and may still be, a one man shop that just quietly does his own thing. In the same time as those services have been faithfully up and running, Google has shut down more services than I can count, because “It didn’t fit with their corporate vision”

                                                                        It’s misguided, and harmful.

                                                                        1. 2

                                                                          Nobody made Linus step back.

                                                                          We’ll probably never know for sure, but the subtext (well, and the text) of his announcement email sure makes it sound like his hand was forced, at least to me.

                                                                          Are you saying you wouldn’t trust a service by a guy who has been diligently working on the same project for 30 years?

                                                                          No, I’m saying I wouldn’t trust a service run by a guy who randomly goes off on people in totally inappropriate ways (his admission). Or, as is the case here, a guy who can’t even behave himself well enough to keep a Lobsters account.

                                                                          Not to mention the guy who invented the base of all of the services discussed in this thread.

                                                                          That has literally nothing to do with anything. A person can be productive or brilliant and also have other, undesirable, qualities.

                                                                          Why do people assume that “Bigger is better” when it comes to web services?

                                                                          I don’t, so I can’t answer that.

                                                                          Google has shut down more services than I can count…

                                                                          Agree with you there! I don’t trust Google for anything but search (I don’t even use Gmail), because that’s the one thing I don’t think they’ll ever kill (or break). I don’t think GitHub is going anywhere either, the worst case scenario is that Microsoft sells it.

                                                                          It’s misguided, and harmful.

                                                                          If there was a person who had the views you seem to ascribe to me, then I might agree!

                                                                2. 30

                                                                  That’s unfair to Drew. He’s passionate, and rude, and opinionated, and submissions here from his site generally stirred up giant flamewars. But I do believe he’s got what it takes to keep sourcehut running.

                                                                  1. 18

                                                                    GitHub will keep running, too. I’m not sure we’ve answered the question of

                                                                    why would I trust him any more than I trust GitHub?

                                                                    1. 8

                                                                      Not only is the sourcehut software available under the AGPL, the issue trackers and such give you export and import functions to pull your data into another instance easily. The software itself is not trivial to host, but it’s not prohibitively hard either. If I needed to eject because Drew became untrustworthy, I am very comfortable that I could do that.

                                                                      Even though that’s a non-zero amount of work, GitHub gives me no comparable ability. That’s a good reason to trust him more than I trust GitHub, in my opinion.

                                                                      1. 3

                                                                        GitHub gives me no comparable ability.

                                                                        The GitHub command line client provides this functionality, as does the API. Obviously, the data formats are specific to the way GH works, but there are ways to extract most if not all of the relevant data (I use this heavily with my team to script up our findings workflow, for example).

                                                                        1. 5

                                                                          Interesting. Unless I’m missing something, you can’t stand up your own self-hosted instance of github, and import that, can you? The ability to stand up my own instance of the forge and import my data, to use on a self-hosted site, is what I meant by “comparable”. (That’s the angle I was coming from… if Drew won’t let me use his hosted service, I can just set up my own copy on any host I want since upstream is AGPL, then import my data from the sr.ht export since sr.ht exposes those functions.)

                                                                          1. 2

                                                                            GitLab supports importing to a self-hosted instance from GitHub [1], although I’m sure it’s not perfect, so it may or may not be useful. It also isn’t clear to me based on a 15 second review whether you can import from some kind of local data dump or raw GitHub API responses or if your GitHub account needs to be currently active.

                                                                            [1] https://docs.gitlab.com/ee/user/project/import/github.html

                                                                            1. 2

                                                                              That looks much better than I thought, particularly if it turns out to work off saved data/responses. And it’s nice that Gitlab enable that for all their tiers.

                                                                            2. 1

                                                                              Unless I’m missing something, you can’t stand up your own self-hosted instance of github, and import that, can you?

                                                                              GitHub Enterprise can be bought as a GitHub-hosted or self-hosted thing. These support (most of) the same APIs as the public GitHub, so you can run your own instance if you are willing to pay.

                                                                              1. 2

                                                                                It would be an interesting experiment to see whether they would sell an enterprise installation to someone whose account they forcibly closed. I was sort of assuming that if they won’t let you be a customer of their public service, they won’t sell you the private one, but that is uninformed speculation.

                                                                        2. 3

                                                                          Because sourcehut is open source so nothing is lost when I leave. More than that chances are if sourcehut goes a bad route there would likely be others jumping in.

                                                                        3. 2

                                                                          Not that you exactly claim otherwise, but Drew also makes some nice things and has created a business structure that enables at least one other developer to make some nice things.

                                                                          Quite apart from that, though, and similarly quite apart from whether he has what it takes to keep sourcehut running, he’s given me an out so that I don’t, strictly speaking, need him to. He’s released the software that runs the forge under the AGPL, here. And it exposes ways for me to export the hosted stuff and import it into a self-hosted instance.

                                                                          So regardless of whether I trust Drew personally, he’s made it so I don’t need to for this purpose.

                                                                          If Drew got angry and decided I couldn’t be his customer anymore, I could stand up my own instance or pay someone to do that for me and import my data. My repos wouldn’t be down at all, my tickets, docs, etc. would be down for a day or so, and my mailing lists might see a bit more disruption than that. If github decided that I shouldn’t be their customer anymore, I’d have my repos. For the rest, I’d kind of be out of luck. (I think this last paragraph is more responsive to @glesica ‘s comment than the one I’m replying to, and I’m too lazy to split it to another reply.)

                                                                        4. 17

                                                                          Because “more than I trust Microsoft” is a damn low bar.

                                                                          1. 7

                                                                            It’s like a little devil hovering over my right shoulder, and a slightly less predictable devil hovering over the other.

                                                                        5. 6

                                                                          From other options there’s also fediverse approach with Gitea, and p2p approach will be available soon with Radicle.

                                                                          1. 11

                                                                            It might be time I move everything to Sourcehut and treat GitHub as a mirror…

                                                                            That time was years ago, but hey, better late than never.

                                                                            1. 5

                                                                              Consider hosting your own, instead. I published a blog post with a list of defunct code hosting sites which I update occasionally. Maybe that list is a good reminder. Remember, it’s not just code that goes away with such sites, it’s also issue queues and in some cases, wikis and mailing lists too.

                                                                              1. 4

                                                                                Are you also start hosting a list of defunct private websites that used to host Git repos that are gone forever and where the disappearence came completely unexpected? I would trust Github more with staying online since that’s their job than a developer running a Gitweb on some VPS with some domain name that requires regular payment to stay online.

                                                                                Kinda like I registered callcc.org after it lapsed to make sure the links to the CHICKEN website don’t break and it doesn’t get domain-squatted and I’m redirecting to the official website these days.

                                                                                1. 1

                                                                                  Are you also start hosting a list of defunct private websites that used to host Git repos that are gone forever and where the disappearence came completely unexpected?

                                                                                  I can’t think of anything offhand where I’ve taken a dependency that’s done that. But when I do take a dependency on something, I generally mirror the SCM repo if there is one. And I am very reluctant to take dependencies on things I can’t have the source to. Since the things I depend on generally haven’t gone away, I haven’t bothered to publish my mirrors, but I would if the license permits it.

                                                                                  1. 3

                                                                                    But when I do take a dependency on something, I generally mirror the SCM repo if there is one.

                                                                                    I learned that the hard way when Rubyforge went down, a few employers ago. We weren’t that active in the Ruby community anymore, so we missed the notice. When the site went away and I had to do some small maintenance tasks on a legacy project, all the third party svn subtrees from Rubyforge were no longer working (and, more painfully, another project of ours was completely gone too). Note that Rubyforge was huge in the Ruby community back in the day.

                                                                                  2. 1

                                                                                    I would trust Github more with staying online since that’s their job than a developer running a Gitweb on some VPS with some domain name that requires regular payment to stay online.

                                                                                    Like I said, history has shown these hosting sites are not as trustworthy as people like to believe they are. The GitHub company can get sold to an untrustworthy partner (har har, like that’d ever happen… oh wait) or go out of business (what if MS decides to sell the company to, I dunno, Oracle or something because it’s not making a profit?), or there might be some other new VCS that comes out that completely blows git out of the water. I’m sure nobody saw coming what happened to Bitbucket - it started out as a Mercurial hosting site, then started offering git and finally dropped Mercurial after Atlassian took over. Its founders probably never would have let that happen if it were still in their power.

                                                                                    From my own perspective, I’ve personally ran into at least five hosting sites who were hosting projects I started or heavily contributed to that are no longer available now (Rubyforge, Dutch govt OSOSS’ uitwisselplatform, Berlios, Bitbucket and Google Code). And then there’s Sourceforge which at least still hosts some of my defunct projects, but had for a while been injecting malware into downloads. If I or my employers (as the case may be) had hosted our own projects from the start, this pain would’ve been completely avoided. These are projects in which I had a stake, and it was in my interest to not let them die.

                                                                                    Now, having said that, I agree that from a third party perspective (someone who is using the hosted code) that’s different. I understand your point saying you don’t want to rely on some random developer’s VPS being up, and neither would I. But then, people change repositories on code hosting sites all the time, too. They move to other hosting sites, or rename repositories etc. Links rot and die, which is unfortunate and something we all have to live with.

                                                                                    Case in point:

                                                                                    Kinda like I registered callcc.org after it lapsed to make sure the links to the CHICKEN website don’t break and it doesn’t get domain-squatted and I’m redirecting to the official website these days.

                                                                                    Thanks for doing that. AFAIK this domain was never communicated as being official, but I might be wrong.

                                                                              2. 8

                                                                                I don’t know what the GitHub rationale was, but the ‘limitation of liability’ bit in most open source licenses only goes so far. If I intentionally introduce malicious behaviour into one of my open source projects, knowing that it would damage downstream consumers, then I’d probably be liable under the Computer Misuse Act in the UK and similar legislation elsewhere. GitHub’s T&C’s don’t explicitly prohibit using their service for criminal purposes but that’s normally implicit: if GitHub didn’t act then they might end up being liable as an accessory (at least as an accessory after the fact). Their distribution channel (NPM) is being used by a malicious actor to attack other users.

                                                                                It’s normally difficult to prove malicious intent in this kind of thing (incompetence and malice look similar) but it seems pretty clear here from the author’s own statements.

                                                                                1. 12

                                                                                  I don’t know what the GitHub rationale was, but the ‘limitation of liability’ bit in most open source licenses only goes so far.

                                                                                  This is disturbing. Software is provided as is, with no liability whatsoever, but the author should still be liable for what happens when other people use it, because it broke things? What if the author decided to completely change the library’s API, or recycle it to just print squares of color, because they liked the name?

                                                                                  If find what the author did pretty stupid, but frankly, suggesting it falls into criminal behavior call for some stepping back and put things in perspective.

                                                                                  1. 8

                                                                                    There is a difference, and it’s not subtle at all, between making a possibly unwanted change in software that is provided without any warranty, and deliberately making a crippling change with the express intent of breaking other people’s applications.

                                                                                    To put it another way: if you accidentally commit an integer overflow bug that causes batteries to blow up, that is, presumably, just bad engineering. But if you deliberately commit a clever hack that causes people’s batteries to blow up, with the express intent of getting people injured, or at least destroying their phones, I think it makes a little sense to not put it under “well, it did say no warranty of any kind on the box, didn’t it?”.

                                                                                    Obviously, this didn’t kill anyone, so I’m obviously not thinking it ought to be treated as murder. But “no warranty” is not a license to do anything.

                                                                                    It’s not like software is being given special treatment here, it’s how warranties work everywhere. If you sell boats with two years’ servicing warranty and they break down after three years, that’s one thing, but if you fit them with bombs that go off after two years and one day, with the express intent of killing anyone on them, that still falls under “murder”, not “what happens after two years isn’t our problem, it says so on the purchase contract”.

                                                                                    (Edit: obviously IANAL and this is not legal advice, either, I’m only parroting second-hand, non-lawyer advice about how insurance works for some high-stakes software projects)

                                                                                    1. 5

                                                                                      I guess that makes sense, when you put it that way :)

                                                                                    2. 3

                                                                                      I am not a lawyer, this is not legal advice:

                                                                                      My understanding is that it comes down to intent. If I upload a buggy piece of crap to GitHub with an open source license, and you use it, then it sucks to be you. If I upload something to GitHub, wait for you to deploy it and then intentionally introduce a vulnerability or other malicious behaviour in it then legally dubious. Normally it’s very difficult to prove intent. If I submit a patch to the Linux kernel that introduces a vulnerability, if you wanted to prosecute me then you’d have to prove that I did so knowing that the bug was there and with the intent to cause harm. That’s very difficult to do in the general case (the NSA null-pointer dereference bugs are a great case in point here: people suspect that the NSA knew about that vulnerability class and introduced it deliberately, but no one can prove it and there’s enough reasonable doubt that it would never stick in court unless there was some corroborating evidence - it could easily have been accidental). If, before I submit the patch, I post publicly about how I am going to intentionally break things for the people using my code and then I push a new version out to public repositories then it’s likely to be easy to prove malicious intent. The author of these packages did exactly that: posted saying that he was going to break things for people if they didn’t pay him and then, when they didn’t pay him, broke things. That may (again, not a lawyer) count as blackmail, as well as computer misuse.

                                                                                      1. 3
                                                                                        1. Code license != Github TOS.
                                                                                        2. Liability could only be disclaimed to the extent permitted by law. You cannot put a sign “free food, no liability whatsoever” and then put poison inside and expect that disclaimer to save you from prison. E.g., GPL states “THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.”
                                                                                    3. 7

                                                                                      I think until they make a statement about it, nobody knows but them. But my assumption is that this happened on a weekend, and whoever was on call figured that the easiest thing to do to minimize disruption till Monday was to suspend the account and hard revert the content until more people could be brought in. I’m also assuming suspending the account just automatically says that you violated the ToS.

                                                                                      1. 3

                                                                                        I could imagine that somebody identified this as a possible account hack and thus locked it.

                                                                                        1. 2

                                                                                          They didn’t, they suspended his account so he can’t log in. You are still free to troll him on GitHub without any recourse whatsoever.

                                                                                        1. 1

                                                                                          Thank you so much

                                                                                          1. 9

                                                                                            This is one of those occurences where a technical solution is sought for a non-technical problem. I think Mozilla should rather complain to the EU Commission, especially given that Microsoft already had its fair share from the Commission on browser choice. Otherwise Microsoft will just change the mechanisms needed and Mozilla will have to reverse engineer it again.

                                                                                            1. 18

                                                                                              Wouldn’t be surprised if Mozilla also did this. Having this workaround in place (and then disarmed by Microsoft) helps build the case.

                                                                                              1. 8

                                                                                                It reminds me of Epic’s case with Apple. Mozilla may be doing this to force Microsoft’s hand into a scenario they can more easily challenge legally.

                                                                                              1. 10

                                                                                                Well my company just got acquired. Which happened during a comically stressful move which happened on a comically stressful couple of months.

                                                                                                So I’m going to go to the farmers market. Ask my partners family for a green light to marry her. & go for a long bike ride.

                                                                                                I’ll fill the gaps with unpacking, and hacking on a side project or another.

                                                                                                1. 3

                                                                                                  Your life seems very eventful at the moment!

                                                                                                  1. 2

                                                                                                    Sounds fun.. good luck!

                                                                                                  1. 31

                                                                                                    On a technical level it’s implemented very well.

                                                                                                    It is matching against a list, so unlike a general recognition AI, there’s very little chance of misidentification.

                                                                                                    The blocklist and matching process is split between client-side and server-side, so it can’t be easily extracted from the phone for nefarious purposes.

                                                                                                    Apple has spent a considerable effort to cryptographically ensure they know nothing until multiple matches are found. Phone even sends dummy traffic to obscure how many potential matches are there.

                                                                                                    So as far as scanning for the intended purpose, it’s a careful well thought-out design.

                                                                                                    I am worried about governments putting pressure on Apple to add more kinds of unwanted images to this list. The list is opaque, and for obvious reasons, it can’t be reviewed.

                                                                                                    1. 6

                                                                                                      This is an improvement over their existing policy of giving authoritarian governments access to iCloud keys for their users: https://www.reuters.com/article/us-china-apple-icloud-insight/apple-moves-to-store-icloud-keys-in-china-raising-human-rights-fears-idUSKCN1G8060

                                                                                                      This technology will allow Apple to expose only content that governments specifically ban rather than having to give them access to everything. We should be celebrating this for both its ability to combat child abuse and that it protects Apple’s customers from over-broad privacy invasion.

                                                                                                      1. 1

                                                                                                        This technology will allow Apple to expose only content that governments specifically ban

                                                                                                        Do governments always make fair and righteous decisions in when deciding what images to ban? I see this situation as disastrous for human rights because you know darn well countries like China will bully Apple into including whatever images they want in that database.

                                                                                                        1. 1

                                                                                                          But China including whatever images they want is WAY better for privacy than today when China simply has access to all of Apple’s Chinese users’ data.

                                                                                                          1. 1

                                                                                                            That’s not the case, unless you mean to say China bullying Apple into giving them a user’s decryption key? That scenario is possible with or without this system.

                                                                                                            1. 1

                                                                                                              This has been the status-quo for the past 3.5 years: https://www.reuters.com/article/us-china-apple-icloud-insight/apple-moves-to-store-icloud-keys-in-china-raising-human-rights-fears-idUSKCN1G8060

                                                                                                              China demand access to user data so many large American tech companies don’t have a significant presence there. Some American companies that are less committed to privacy comply with the conditions that China places for operating there. It’s a huge market so it’s been a great business move for Apple.

                                                                                                              Having the ability to scan users’ content in device might be a way to achieve censorship without such indiscriminate access to user data.

                                                                                                              1. 1

                                                                                                                The article makes many speculations, but there is nothing concrete regarding the Chinese government having the kind of access you described written in it.

                                                                                                                Also see this more recent article: https://www.nytimes.com/2021/05/17/technology/apple-china-censorship-data.html

                                                                                                                Documents reviewed by The Times do not show that the Chinese government has gained access to the data.

                                                                                                                1. 3

                                                                                                                  Apple user data in China is not controlled by Apple, it’s controlled by GCBD, a company owned by a Chinese regional government. Instead of using standard HSMs they use a hacked up iOS system. Apple’s security chips are vulnerable to local attacks. https://arstechnica.com/information-technology/2020/10/apples-t2-security-chip-has-an-unfixable-flaw/

                                                                                                                  So there’s a government owned company that controls the user data which is encrypted with keys stored in an insecure system. If user data is not being accessed that’s a choice that the Chinese government is making, not a restriction on their access.

                                                                                                                  1. 1

                                                                                                                    GCBD is the Chinese company that provides apple with datacenter type services. This is not the same as “controls the user data”.

                                                                                                                    1. 2

                                                                                                                      From the New York Times article you linked:

                                                                                                                      U.S. law has long prohibited American companies from turning over data to Chinese law enforcement. But Apple and the Chinese government have made an unusual arrangement to get around American laws.

                                                                                                                      In China, Apple has ceded legal ownership of its customers’ data to Guizhou-Cloud Big Data, or GCBD, a company owned by the government of Guizhou Province, whose capital is Guiyang. Apple recently required its Chinese customers to accept new iCloud terms and conditions that list GCBD as the service provider and Apple as “an additional party.” Apple told customers the change was to “improve iCloud services in China mainland and comply with Chinese regulations.”

                                                                                                                      The terms and conditions included a new provision that does not appear in other countries: “Apple and GCBD will have access to all data that you store on this service” and can share that data “between each other under applicable law.”

                                                                                                                      So to get around US privacy laws and comply with Chinese surveillance laws a Chinese government owned company is the iCloud “service provider” (with Apple listed as an “additional party”) and per the ToS “will have access to all data that you store on this service”.

                                                                                                                      It was a great business decision. They’re the only major western tech company making a lot of money from the huge Chinese market. I personally wouldn’t want to work there but the people who do are doing very well.

                                                                                                      2. 2

                                                                                                        Could such a feature be “pretty easily” fooled to trigger law enforcement to someone as the article implies?

                                                                                                        Is it plausible to assume that they scan the cached Telegram/Whatsapp/Browser images? If so, how would it behave if someone sends you a set of known infractor images? (an evil chat bot, for example)

                                                                                                        1. 6

                                                                                                          Apple says they scan only images in the iCloud library, so images in 3rd party apps and browsers won’t be scanned, unless you save them or screenshot them to your iCloud library. Of course, Apple devices belong to Apple, not you, so Apple could later decide to scan whatever they want.

                                                                                                          With the current scheme, to cause someone trouble, you’d first have to have multiple banned images to send to them. I hope obtaining actual CSAM is not “pretty easy”.

                                                                                                          My big worry was that a plaintext blocklist on the phone could be used to generate arbitrary new matching images, but fortunately Apple’s scheme protects against this — the phone doesn’t know if images match. Therefore, you can’t easily make innocent-looking images to trick someone to save them.

                                                                                                          1. 3

                                                                                                            Of course, Apple devices belong to Apple, not you, so Apple could later decide to scan whatever they want.

                                                                                                            Is there a source for this information?

                                                                                                            1. 3

                                                                                                              What’s your source for the “multiple banned images” part? Skimmed through Apple’s technical PDF descriptions a bit but didn’t find that part right away.

                                                                                                              1. 4
                                                                                                              2. 2

                                                                                                                Apple says they scan only images in the iCloud library, so images in 3rd party apps and browsers won’t be scanned, unless you save them or screenshot them to your iCloud library.

                                                                                                                I believe pictures in a lot of messaging apps are automatically uploaded to iCloud. So you could just send someone some pictures over WhatsApp, email, or whatnot. Not 100% sure of this though; I’d have to check. I disabled all the iCloud stuff because it kept nagging.

                                                                                                                1. 1

                                                                                                                  That or you can generate adversarial images that trigger known hashes. It isn’t using cryptographic hashes, it is using perceptual hashes.

                                                                                                                  1. 1

                                                                                                                    No, you can’t, because the device doesn’t know if it has got a match.

                                                                                                                    1. 1

                                                                                                                      And you think there will be no other way to get ahold of any of the perceptual hashes that are being scanned for?

                                                                                                                      1. 2

                                                                                                                        What I’m saying is that you can’t easily abuse Apple’s implementation for this. They’ve anticipated that problem and defended against it.

                                                                                                                        If you get hold of some hashes or banned images from another source, that’s not Apple’s fault.

                                                                                                            1. 5

                                                                                                              I always think of security of software massive companies are using as more a labor problem. It’s in their nature to keep billions in profit. They’ll spare only a slice. Can they spare enough of a slice to hire the developers to fix Linux? And, since it’s Google, Android as well?

                                                                                                              Three figures helped me understand this a while back:

                                                                                                              1. The cost of Solaris 10. It was a rewrite project to modernize a commercial UNIX. Fans of the open-source projects derived from it say it paid off. This gives an idea what their own high-quality, more-secure, clean-slate option might cost.

                                                                                                              2. The cost, in size and/or funding, of groups such as PaX Team, OK Labs, and GrapheneOS. Add in academic teams who did things like add memory safety to FreeBSD kernel or Linux apps. Maybe ExpressOS. These give an idea how much it might cost to make one or more dramatic improvements to Linux, Android, etc.

                                                                                                              3. Google makes billions in revenue on Android. Others making massive fortunes on Linux or Linux-based tech include IBM, Amazon, and defense contractors.

                                                                                                              Yeah, they could do it by themselves if they wanted. That confirms the damage is an externality to them. They’ll put in some kind of effort, leave most of the job undone, and do that even when the cost is almost nothing to them.

                                                                                                              1. 3

                                                                                                                You need to think about opportunity cost. $1 invested in security is $1 not invested in something else. The security investment is competing with things that customers are demanding. How many people will buy an Android phone instead of an iOS phone if Android ships with security feature X? How does this compare with the number of people that will buy an Android phone instead of an iOS phone if Android supports 200 new emoji? Even a big company like Google has a finite number of engineers and needs to prioritise their work. New features sell products, security improvements don’t (outside of a few markets).

                                                                                                                This would probably change a lot if regulation increased liability for vulnerabilities, but it’s not clear how that would work with open source projects. Some random person accidentally introduces a vulnerability into Linux, Google packages it up in AOSP, Samsung ships a phone with Samsung’s Android version built on top of AOSP, who should be liable if an end-user’s phone is compromised?

                                                                                                                1. 1

                                                                                                                  The opportunity cost-based accounting only works if there is no liability for shipping shitty/insecure software. If only we could put an end to that…

                                                                                                                  1. 1

                                                                                                                    You need to think about opportunity cost. $1 invested in security is $1 not invested in something else.

                                                                                                                    It’s true that businesses consider this. It might even be what Google was doing. You’ll know that if Google is, like Amazon, steadily building things that might become products, keeping an eye out for what customers love, and turning those into long-term, supported products with revenue. Instead, we see a trend at Google where they consistently create excellent tech with lots of users, sometimes taking over a niche, before canceling that tech. It’s like they don’t even try to make their investment pay off in any way. Looking at their cloud vs Amazons, it’s clear Amazon’s customer focus is whats causing them to pound away at Google. What we see can’t possibly be Google being clever about what customers want.

                                                                                                                    On security side, we see a demand for security. Google pushed Chrome on both performance and security via Native Client. They promote projects like BeyondTrust and Titan. Back on demand side, we see damaging stories in the media comparing malware rates on iOS vs Android. It’s a differentiator for iOS you’d think they’d want to eliminate. Further, there’s always been a demand for a private, at least enterprise and government, variant of Android. There’s a hard-to-estimate niche for people that pay to turn off ads. That means it’s a wise move for these companies to make a more secure version with all tracking and ads turned off priced at whatever tracking/ads bring plus some profit. Privacy-conscious customers often pay a premium for it. So, they could increase the profit margin on that. It’s telling that they haven’t even tried despite both FOSS projects and small businesses showing how low cost it would be for Google to set that up.

                                                                                                                    Saying they’re handling priorities really well is too charitable after all their missed opportunities, canceled products, and wasteful projects. Best explanation is a combination of (a) they don’t care about security for many reasons (including harder-to-sell ROI) and (b) marketing ineptitude.

                                                                                                                    “This would probably change a lot if regulation increased liability for vulnerabilities”

                                                                                                                    I agree. I go further wanting both regulation and liability. I’ve promoted regulation since the TCSEC (pdf) and DO-178B proved corporations will respond to it. Whole ecosystems, from reusable components to tools for building them, emerged from both sets of regulations. That makes regulations the only thing that’s proven to work. From there, I just looked to how to do it better: goal-based vs prescriptive, lower costs, more automation, etc.

                                                                                                                    Liability is a different issue. We’ve seen the class actions in other industries achieve risk reduction. From there, it becomes some kind of game of what profitable evil they might get away with, what the lawsuits will cost, and if one is higher than the other. We need to make sure whatever they’re getting hit for is actionable. We also need to set the fines or damages at many times higher than whatever preventing them cost. Then, if that’s consistently enforced, those doing it will clearly have just acted unreasonable under reasonable, professional standard.

                                                                                                                    So, a mix of regulation and liability.

                                                                                                                  2. 2

                                                                                                                    They probably would rather put their efforts into Fuscia. The Linux kernel is a bit of a commodity these days, with every tech company maintaining some level of contribution and aptitude for it. The result is less control for any individual company, which we love, but they can’t stand (see browser wars)

                                                                                                                    1. 2

                                                                                                                      That’s a good theory. Lots of them like control and GPL elimination. It seems like it’s why router vendors go proprietary when better stuff is available under BSD. Let’s not forget long-term, lock-in opportunities. Google seems to be in that camp looking how Google Apps/Play agreements with Android manufacturers.

                                                                                                                  1. 11

                                                                                                                    This is a great write up, but I’m a bit confused by the title and headline:

                                                                                                                    Inserting One Billion Rows in SQLite Under A Minute

                                                                                                                    Current Best: 100M rows inserts in 33 seconds.

                                                                                                                    Shouldn’t this blog post be called Inserting One Hundred Million Rows in SQLite Under A Minute?

                                                                                                                    1. 3

                                                                                                                      Hey, sorry for the misleading title. I started with ‘Fast SQLite Inserts’ and it had many iterations. In the title, I wanted to intend that I want to insert 1 billion rows under a minute on my machine. I thought the current title is fine, since I got LGTM for earlier drafts. The detail about on my machine is also important since mine is a two year old laptop and all the measurements are done on it.

                                                                                                                      Also I got another feedback that title should indicate that it is a test database and emphasise that it is not durable.

                                                                                                                      I am wondering the right way to convey all of this in the title yet also keep it short.

                                                                                                                      1. 10

                                                                                                                        I think the title is close enough but could be renamed to 100M and still be impressive. What you said makes sense, but generally we don’t see titles that didn’t actually happen unless they’re prefixed with “Attempting to” or something.

                                                                                                                        1. 3

                                                                                                                          hey yellow, thank you for reading my post and for the feedback. I have updated the title on my blog post, prefixed with “Towards” and also requested mods to edit title here as well.

                                                                                                                          1. 1

                                                                                                                            Thanks! Nice post!! :)

                                                                                                                          2. 3

                                                                                                                            Yeah, I agree. I think it’s a great blog post and the results are impressive. The title is just a bit misleading.

                                                                                                                      1. 2

                                                                                                                        I’m kind of curious if Dark will ever take off. My gut says no though. I can’t really imagine who would use it. Likely not programmers, except for POC work. I could see a business analyst or other technically minded person using it if the company can’t afford a programmer. But after they get good at it, they may teach themselves coding and become worth more.

                                                                                                                        1. 9

                                                                                                                          Google also has Firebase preferring code written in AOSP that I read when reversing some apps a while ago. A competitor would simply not be able to compete with certain Firebase features.

                                                                                                                          1. 4

                                                                                                                            I couldn’t parse that sentence.

                                                                                                                            1. 6

                                                                                                                              It’s missing a hyphen; “Firebase-preferring code”.

                                                                                                                              Even then it’s awkward but it makes sense.

                                                                                                                              1. 1

                                                                                                                                Sorry, can’t edit anymore, but that is what I meant. Thanks for clarifying for me.

                                                                                                                                1. 1

                                                                                                                                  Thanks!

                                                                                                                            1. 10

                                                                                                                              windnws.com windo7s.com windkws.com windmws.com winlows.com windgws.com wildows.com wintows.com wijdows.com wiodows.com wifdows.com whndows.com wkndows.com wmndows.com

                                                                                                                              What do the stats look like for these domains? Roughly uniform or some hit more than others?

                                                                                                                              1. 4

                                                                                                                                I also love putting emojis and null in forms to see if its handled correctly :)

                                                                                                                                1. 1

                                                                                                                                  don’t forget to add some tags, like <b>s!