1. 59

    Update: been working on a better approach to these problems that leave affected users feeling less put-out. I’ll be starting with a better email template in the future:


    In the future I’ll be working on better automated soft limits, so that users aren’t surprised by this.

    @sjl: after thinking it over more, I was unprofessional and sarcastic with you. I apologise.

    1. 41

      I think it would be beneficial for you to take on the mindset that your users’ use cases are always valid, by definition, as a premise. Whether or not your service can handle their use cases, maybe not, but this idea that you know better what your users should be doing is not going to accomplish your goals.

      As another example, I happen to need 2-3 more GiB RAM than the sr.ht freebsd build services offers at the moment, and have offered to up my monthly donation to account for the resource usage, and you’ve turned me down, on the grounds that I’m fundamentally abusing computer hardware in some moral way. As a result, Zig freebsd builds have many of the tests disabled, the ones where the bootstrapping compiler is a bit memory hungry. Zig’s FreeBSD users suffer because of this. And as a result, when someone else offers me a different FreeBSD CI service with more RAM, I’m ready to accept it, because my use case is valid.

      1. 6

        Could linking with the boehm conservative gc work as a stop gap? I think it won’t require any code changes.

        1. 4

          Something Andrew doesn’t mention here is why he needs 2-3 GiB more RAM: because, by design, his compiler never frees memory. Nearly all of that RAM is dead memory. In order to accomodate this use-case, I’d have to provision dedicated hardware just for Zig. Sometimes, use-cases are wrong, and you need to correct the problem at the source. Just because someone is willing to throw unspecified sums of money at you to get their “use-case” dealt with doesn’t mean it’s worth dealing with. I have finite time and resources and maybe I feel like my time is better spent implementing features which are on-topic for everyone else, even at the expense of losing some user with more money than sense.

          1. 44

            even at the expense of losing some user with more money than sense.

            I really hope you change your tune here. Insulting users is pretty much the worst thing you could do.

            Another thread recently talked about the fact that compilers don’t free memory, because the goal of a compiler is to be as fast as possible, so they treat the heap as an arena that the OS frees. Compilers have done this for 50+ years—zig isn’t special here.

            1. 4

              I didn’t mean to imply that Andrew doesn’t have sense, but that the hypothetical customer-thats-always-right might not.

              As for compilers never freeing to be fast, utter bollocks. So the compiler should OOM if I have <8G of RAM to spare? Absolutely nuts. Freeing memory is not a performance bottleneck.

              1. 38

                Your reasoning is sound, your wording and phrasing choices are not. In what I’ve read you don’t come off as witty when you’re dealing with a paying customer and telling them they can’t do something which I also think is unreasonable, you come off as a dick. That’s how it appears. I don’t have any problems with you or your services and I think you working on this stuff is awesome… but I wouldn’t pay for insults in addition to whatever else you might provide.

                1. 5

                  As long as I’ve known him Drew has pretty consistently been like this. It’s not a bad thing. It’s quite refreshing actually.

                  1. 35

                    It’s refreshing to have a business make fun of you?

                    1. 9

                      It’s quite refreshing to see someone willing to say ‘no you’re wrong’ instead of the typical corporate ‘the customer is always right’ bullshit so many people here have obviously come to expect.

                      Sometimes the customer is wrong.

                      1. 34

                        It’s OK for both people to be right, and the customer to stop paying for the service and walk away. It’s then OK for the customer to go tell people about how they were treated. Hopefully that happens more.

                    2. 24

                      As a former moderator in prior communities, I politely disagree. Folks that are never not toxic are a serious liability and require special effort to handle well. I recall one memorable day when Drew dared me to ban him; I should have let the emotions flow through me and removed him from the community.

                      Also, as a former business owner, I politely disagree that this is good business practice.

                      1. 16

                        I agree it’s good, now I know to avoid this business!

                2. 14

                  CPU speed vs memory usage is a fundamental resource tradeoff that occurs all the time in computing. Just because you disagree with where on the spectrum someone has chosen to aim their design doesn’t mean they’re stupid. Especially when they too are a mostly-one-person project operating on limited resources.

                  It’s PERFECTLY VALID to say “I don’t have time to accommodate this one special case, sorry”. It is NOT perfectly valid to say “you are stupid for needing this special case, go away”. Money vs. person-time is another fundamental resource tradeoff where different people have different priorities.

                  1. 21

                    Regardless of the use case, I’d really rather not have my SCM platform making discretionary decisions about what I’m working on. The users aren’t paying for you to audit them, they’re paying for the services provided by the software. If you want your service to come with the exemption that you get to unilaterally decide whose content is allowed and whose content isn’t allowed, you’re free to do that. Just expect the community to nearly unanimously respond with “we’ll go elsewhere”

                    1. 7

                      He’s not making ‘discretionary decisions about what [you’re] working on’. I don’t see Drew saying ‘you can’t use this service because I don’t like the way your compiler is designed’. He’s saying ‘provisioning dedicated hardware for specific projects is a lot of time and effort that I don’t have, so I’d need to have a really really good reason to do it, no matter how much money you’re willing to throw at me, and you haven’t given me one’.

                      Every service out there gets to decide what is allowed and what isn’t. Look at the terms of service of any file or repository hosting service anywhere. GitHub, GitLab, Bitbucket, imgur, pastebin services… ALL of them make it clear in their terms of service that it’s entirely up to their whim whether they want to host your files or not.

                      1. 32

                        Drew is literally commenting on a particular users project, and how its design is a problem, so I have no idea what you’re talking about:

                        Something Andrew doesn’t mention here is why he needs 2-3 GiB more RAM: because, by design, his compiler never frees memory. Nearly all of that RAM is dead memory.

                        As for compilers never freeing to be fast, utter bollocks.

                        @andrewrk can hopefully clarify, but I thought his offer to up monthly donations was to improve sr.ht’s FreeBSD offering, in general, not necessarily to only improve Zig builds (Zig builds would improve as a byproduct of improving the FreeBSD infrastructure). If the donations were only to be used to improve Zig-specific experiences, then I understand the argument that Drew doesn’t want to commit to that.

                    2. 12

                      It just seems weird to me that one of your criteria for whether or not to give a customer resources is based on a personal audit of their code. Are you going to do this for every customer?

                      1. 3

                        I completly understand the concern here, and take it very seriously. I usually don’t dig into the repo at all and just reach out to the user to clarify its purpose. In this case, though, the repo was someone’s personal website, and named as such, and connecting the dots did not require much.

                        1. 2

                          As explained downthread, it’s “Alert fires -> look for what’s caused the alert -> contact customer whose repo tripped the alert”.

                      2. -2

                        ‘The customer is always right’ is nonsense.

                        1. 10

                          Nobody’s suggesting otherwise.

                          1. -8

                            Literally everyone else in this thread is acting like the customer is always right.

                      3. 18

                        You handled this very professionally and courteously, I plan to continue to use sh for many happy years to come.

                        1. 6

                          You are under no obligation to explain or justify what your business model is to anyone, or on a personal level what self sustainability, your own peace of mind, well being or definition of meaningful sustainable work is.

                          There is a particular mode of doing business these days which people inside that paradigm often do not understand that they are inside and therefore apply force to get others to conform.

                          You’re breaking old paradigms and inventing new ways of running organisations and that is brave, ground breaking and commendable and politically powerful.

                          I hope issues like this does not deter you one bit from blazing your own trail through the fucked up world that is tech organisations in late stage capitalism and I hope you share as much as you can about how you’re doing personally and in ‘business’.

                          1. 2

                            git-lfs implementations often don’t allow to reclaim unreachable blobs: once you push a binary blob, even on a branch that you deleted, it will take some space forever.

                            Maybe it is worth investigating git-annex while you’re on this topic.

                            1. 5

                              Yeah, git annex is also something I intend to study. I’m only just setting up large file servers for blob storage, figuring out how to apply them is the next step.

                          1. 3

                            Great read. I always wanted to push my setup in that regard: I currently only use fish + fd + ripgrep with markdown notes. You inspired me to optimize my workflow a bit more. I will definitely dig into some tools you mentionned: devdocs.io, recoll, etc

                            1. 1

                              I used Hakyll in the past, mainly as an excuse to do some Haskell. But after a while it turned to a black box and I wasn’t sure how to maintain it, or hack on it.

                              I rewrote it recently to simply use a mixture of Pandoc and Tup. Not as powerful but I am much more efficient at tweaking it.

                              Here it is.

                              1. 2

                                So they worked on the UI but kept the ultra-narrow columns? So weird. I can’t even read the text the column is so narrow.

                                1. 3

                                  Try an alternate UI like pinafore, it has wider columns.

                                  1. 1

                                    Wow, pinafore is really nice. Will try it out for a couple of weeks.

                                    1. 1

                                      Thanks for this tip. Do I have to run my own instance to do that? Do I have to lobby my server admin to install extra themes? I’m just using mastodon.social so far.

                                    2. 2

                                      Yeah, that decision baffles me as well. Added some custom css to firefox to make columns wider.

                                      1. 1

                                        Different themes have different column width. Try the “Photon” theme, I find it much more usable.

                                        1. 1

                                          both the glitch-soc fork and the mastodon frontend for pleroma have growing columns… Why they don’t change it for mainline is a mystery.

                                        1. 4

                                          How does one do P2P on a web browser? Do you open WebRTC connections with other Peertube users?

                                          1. 8

                                            P2P in the browser is done via WebTorrent, which uses WebRTC connections as transport channels to other browsers watching the video. It then uses the BitTorrent protocol for the actual data transfer.

                                            1. 4

                                              They mention the use of WebRTC on their FAQ: https://joinpeertube.org/en/faq/

                                              1. 1

                                                What question is it under?

                                                1. 1

                                                  “Why broadcast PeerTube videos through peer-to-peer?”

                                                  Peer-to-peer broadcasting allows, thanks to the WebRTC protocol, that Internet users who watch the same video at the same time exchange bits of files, which relieves the server.