Threads for damantisshrimp

  1. 8

    I’m actually a pretty big fan of Bazel; the approach really resonates with me: distributed build, do it once, make it reproducible.

    But getting into bazel is extremely terse, maybe it’s because I never worked at google.

    The terse-ness means I can’t get adoption in any companies I work for, since it’s so much more complex and non-approachable than a simple build from scratch.

    1. 6

      Bazel has good ideas, but it’s googleware. Large, complex, poorly documented, and full of edge cases and quirks. It just feels bad to use.

      1. 6

        Thats pretty common I would say. Bazel is a specialized tool.

        Imo its best used in a big organization where you have thousands of technical users and multiple languages, services and you need to staff a DevEx team to help enforcing standards across org. Bazel then act as one of the key piece glueing things together so that the centralized team could build a DevEx platform on top.

        In smaller orgs where a lot of those requirements do not matter, you would be able to move much faster by leveraging the open source ecosystem toolings instead of crafting your own.

        1. 6

          I can agree that not being able to leverage existing build definitions (without wrapping) is a big disadvantage, but you can go a long way with a pretty limited subset of Bazel and it’s the most mainstream of the choices which offer similar advantages, so I prefer it, even for extremely small projects. I caught several cases where the original project (CMake) specified dependencies incorrectly and outright missed header files (which would result in not recompiling when those files changed) thanks to its sandboxing.

          I think to help people work in the areas where Bazel is simplest to work with, it just takes a little OSS investment in providing remappings, which will pay for itself at soon as you need to track down sandboxing, accidental system dependencies (essential for multiplatform), build farms, or multi-language workflows.

          1. 3

            so I prefer it, even for extremely small projects

            Me too man.

            I have been talking and working with some folks on solutions to help reduce the pain points of adopting Bazel. I really hope the entry barrier is lowered overtime, which is also what motivates me to write these blog posts.

            But after working as a Bazel consultant for a few customers, I can definitely tell that there are a lot of pain still and more works to be done so that we can confidently say this is strictly a better choice than other alternatives.

            1. 3

              Interesting. On a particular setup (Linux, with mostly C++ and Python), it seems Bazel setup is pretty simple, it can leverage system libraries for C++ code, and can use PIP for python libraries.

              Is it a particular language painful? A particular OS (Windows? Or macOS?)? Or just a lot of 3rd party libraries without Bazel BUILD? Or Bazel issues harder to debug even if you can have setup started pretty easy?

              1. 5

                Is it a particular language painful? A particular OS (Windows? Or macOS?)? Or just a lot of 3rd party libraries without Bazel BUILD? Or Bazel issues harder to debug even if you can have setup started pretty easy?

                Yes to all the above.

                First of all, not all languages work with Bazel out of the box. There need to be rules set to tell the build tools on how to build and cache your language artifacts. This exists for the established languages such as C/C++, Java, Go… and NodeJS, Python, Docker with lower maturity… But if you are trying to use an exotic lanugage like Julia, or Matlab then you are out of luck.

                OS support is also a big issue. Google does not use Windows so the experience over there has been quite subpar. Many orgs have been moving to Cloud Workspace solutions as a work around for Windows users.

                3rd party libraries come with their own challanges as well. I.e. some third party lib would assume a certain thing about the environment they are built in (some system dependency of the host) and you would need to work around that. Nix Package Manager has recently been coupled with Bazel to solve this particular class of problem.

                Finally, Debugging and IDE support are very very poor atm. Again, this is because Google uses an internal non-opensource setup and thus, pay little effort in supporting the opensource use case. As of yesterday, Jetbrain has stepped up in supporting the Bazel IntelliJ plugin as a co-maintainer with Google… but there is still no official support for VSCode or Neovim or Emac etc…

                So there are plenty of pain points, plenty of footguns… But despite all that, I would say it’s still very much worth it for the clients I have worked with recently to adopt Bazel, and things are getting better everyday.

                1. 2

                  I used bazel for a mobile app with a C++ library, and one pain point was that IDE (Xcode, Android Studio) were not fully aware of the toolchain details and debugging was often not working properly and had to be tweaked (source maps for instance).

                  It was not much faster than the “native” way of doing things (on mobile at least), and when something went wrong you had to debug the build system.

                  1. 1

                    This aligns with my experience. We had an application that supported both iOS and Android, and used several C++ libraries. Enough of that used bazel that we decided to take a flyer, and I came to the same conclusion that you did. Though I’d add that we never found a cross-platform mobile build system that we didn’t need to debug in a poorly supported way when something went wrong. And we never found a nice way to make the native stuff use foreign build systems that didn’t have the same problem.

                    So while that observation did mean that I was never inspired to use bazel heavily for any new work, I never shied away from adopting it if it was in place for a substantial chunk of my app’s dependencies for that reason.

        1. 2

          There is a cohesion on other systems Linux doesn’t approach.

          Not to say it can’t, but it requires a conscious integration attempt, sort of like a BSD. You know, I wonder if anybody took a BSD to become a mainstream platform by integrating everything with a few simple rules and a cohesive vision? That could be seen as a luxury artist-oriented computer OS, and all it would take is gluing together things and making it look good. It could be great, especially if they go so far down the stack they end up making their own processors.

          Separately from the above, I’m looking forward to Linus Tech Tips’s video about trying to switch to Linux as a savvy but Linux-ignorant person. It seems like a real good faith attempt, and the issues I’ve noticed raised so far are all excellent observations about the state of the Linux world.

          1. 2

            There is helloSystem from the creator of AppImage that is geared toward this way.

            1. 1

              Linus Tech Tips’s video about trying to switch to Linux

              I’m eagerly awaiting that one. It’s got a real potential of a serious approach and significant time commitment. I’m just worried that it won’t be obvious it’s “savvy but Linux-ignorant person who’s an extreme windows power-user”. There will be lots of use cases (like multi-screen live streams with pro audio interfaces) which are both non-trivial and very uncommon on any system.

              1. 2

                The average person has their workflow. Linus is answering the question of “Can I do my workflow on Linux?”

                I don’t see why having pro-audio or lots of live streaming is in fact different from any other actual real challenge people face on their machine.

                1. 2

                  It’s not representative of what people do. You can cover majority of use cases with “you get a browser, a media player, and some office suite”. For gamers you add a steam library and controllers. Anything past that is a decent specialisation.

                  It’s a good question and premise, I just hope people keep in mind that “I suffered with this setup because the things I had a custom, specialised workflow for in Windows don’t have a 1:1 equivalent” does not mean “Linux is not a usable daily driver for an average person”.

                  1. 2

                    It is representative of the challenge for normal users, if not the tasks normal users would complete for their own workflows.

                    Does that make sense?

                    1. 1

                      It makes sense, but I still think it’s a little misguided to see this as a normal user thing.

                      I see this as a bit of a mirror of myself, I am simply unable to get work done on Windows, there are 1000 paper cuts (as a developer) for me. I have been using Windows continuously on my “main” desktop computer at home since I started using computers in the mid 90s. But I am very glad that I could leave working on Windows behind many, many years ago, because I simply can’t do things that are easy for me to do on Linux (maybe on a mac as well). And this is reverse, it’s not an inherent flaw if people with opinions on Windows usage can’t reproduce everything 100% on Linux.

                      Coming back to my first sentence, I can do “normal user things” just fine on any OS, including setting up some sort of launcher to have easy access to some tools. Or most “boring” tools are available on any platform.

                      But I’m also looking forward to this video, now that I read about it. Incidentally in some videos I noticed he seems to be doing things on Windows I’ve never done that way, without being able to name concrete examples, but I watched a ton of their videos last year.

            1. 32

              Wow.

              This article starts off with a thoughtful and nuanced exploration of some of the hard issues around open source and big tech, and then kinda jumps the shark as far as I’m concerned:

              Work at a megacorp and either you rot working on menial things, or learn to play the politics game to get a shot at working on the one interesting project… until it gets canceled when the CEO decides to “refocus”, or when Monday comes if you work at Google.

              Honestly, there’s no reason for this kind of attitude. You don’t want to work for big tech? Great! There’s a lot of merit for staying small and feisty and having total control. Rock on with your bad self! But don’t tar every employee working for big tech with the same brush, because:

              1. Your preferences are not their preferences
              2. Your goals may not be their goals
              3. What brings you pleasure and fires your passion may not do the same for them.

              And who are you to tell me what I do or don’t love, or where I can or can’t find fulfillment?

              Am I asking everyone to sit around the campfire and have a sing along? Heck no! Big corporate jobs aren’t for everyone, What I would like is a bit more nuance, understanding and open mindedness and bit less vitriol.

              The “software you can love” idea is interesting, but I guess I don’t really understand the advantage of further muddying the waters in an already super complicated licnesing landscape.

              1. 19

                Thanks both of you for clearing up my own concerns about the lines about Big Tech being tone deaf.

                The “software you can love” idea is interesting, but I guess I don’t really understand the advantage of further muddying the waters in an already super complicated licnesing landscape.

                I, personally, loved this framing. Among many issues with the Free Software movement, one I see constantly is an insistence that personal feelings of delight and good UX are sidelined in the name of “freedom”. Hate how config files feel and there’s no Settings GUI, so you’re not interested in using the software? Well, you’re an enemy of freedom. You didn’t reach the patch notes, the new software broke your system, and you’re annoyed? Well freedom is a choice, and you just chose against it. Not only does this cause people to not take free software seriously, it just means that people won’t actually use free software and will use proprietary alternatives instead, because you’re not taking the users’ desires into account when you’re designing the software.

                I’d love to see an increased focus in free software on software that actually brings joy to its users; software that is fun to use and also free, not free but sometimes fun to use. I love the framing of that in this article. Software, at the end of the day, should solve a need.

                1. 1

                  this feels wrong to me. sure, there are a lot of elitist people in the crowd something like the free software movement attracts, but there are also at least a handful of prominent gnu projects with ease of use as a high priority. gnome is probably the best example here, but there’s also lmms and emacs (emacs not so much, but they’ve made some efforts for semi-gui configuration and so on).

                  which is not to say that i disagree with your main point. i love gnome for how little i need to configure it (these days i turn animation off and compose key on, and that’s it), and that’s great. but i also love emacs, and that’s for very different reasons, and maybe a lot of people who love the former wouldn’t love the latter or something, but emacs has very much taken its users desires into account in its design (even if currently maintenance isn’t doing such a good job at that).

                  1. 1

                    I don’t think we disagree on anything discussed actually. Users of different systems have different expectations and needs. A user of Emacs probably has different expectations than a user of MS Word, for example.

                    there are also at least a handful of prominent gnu projects with ease of use as a high priority

                    Gnome is actually probably the only one I know. And even then, Gnome gets so much flak from many modern FOSS fans.

                    there are a lot of elitist people in the crowd something like the free software movement attracts

                    This is a question I’d love to unpack. Nothing about free software ostensibly requires elitism, but it’s present at many points of the conversation. Why?

                    1. 2

                      i think you’re right, and i misinterpreted some of what you were getting at.

                      Gnome is actually probably the only one I know. And even then, Gnome gets so much flak from many modern FOSS fans.

                      yeah, this sucks. i think a lot of that flak plays into the elitism thing, particularly as gnome seems to take a lot of inspiration from the mac aesthetic. also it appears that gnome do not consider themselves part of the gnu project, so i guess my point falls down anyway.

                      Nothing about free software ostensibly requires elitism, but it’s present at many points of the conversation. Why?

                      i find this interesting too, and i briefly touched on it in my post about nano being pretty good. fundamentally, i’d say it comes down to the fact that free software is an ethical stance. once the ethics of anything get involved, it becomes easy to consider those who don’t subscribe to, or understand, the ethical position as worse in some way, ergo, elitism. with that foundation, all sorts of other elitism can grow, and technical aptitude is an easy target in a technical environment.

                      1. 1

                        it becomes easy to consider those who don’t subscribe to, or understand, the ethical position as worse in some way, ergo, elitism

                        Yeah that might be it. It’s just unfortunate since elitism and ethics just mean that you can bully folks into accepting your UX of choice in the name of ethics, even though the ethics say nothing about UX.

                2. 21

                  And who are you to tell me what I do or don’t love, or where I can or can’t find fulfillment?

                  Did you miss this part?

                  Big tech has been increasingly unable to create software you can love, and that’s the ability you gain by refusing to work for the silicon valley. It’s not for everyone and I can understand if somebody prefers the security of a stable job in a company too big to fail, where they can just go home after work, forget about software, and live a very comfortable life but big tech jobs are not the absolute best choice for those who really love software craftsmanship and, as it turns out, some of these people have taken a liking to Zig.

                  Also

                  The “software you can love” idea is interesting, but I guess I don’t really understand the advantage of further muddying the waters in an already super complicated licnesing landscape.

                  This has almost nothing to do with licenses, where did you get that idea? It seems to me you need to re-read the post.

                  1. 18

                    I didn’t miss that part. That part is just as tone deaf as the rest of this section of the article.

                    Would it surprise you to learn that there are a number of AWS employees who are fans of Zig?

                    People take jobs for all kinds of reasons. Those reasons can and often do have nothing at all to do with what those people may or may not love doing on their own time.

                    1. 30

                      Just like some work for AWS, I worked for Redis Labs. I don’t regret it, I learned a lot of things, and it was fun until the last phase. It also paid well and allowed me to live a good life.

                      I have no ill will towards people that work at AWS. I do have ill will towards the company, just like I have ill will towards Redis Labs given what’s happening to Redis.

                      If I had no other alternative, I would be still working at Redis Labs. I was lucky and so now I’m in a position where I can share what I think without fearing losing my job. I don’t expect anybody to become a human sacrifice in the name of software.

                      I really encourage you to read the article without seeing it as a personal attack towards you, or as a statement on licensing. It’s neither. It’s about the current dominant model of producing software, its limitations, and how the ZSF knows how to deal with big players that have different interests that conflict with ours.

                      1. 14

                        I really encourage you to read the article without seeing it as a personal attack towards you, or as a statement on licensing. It’s neither. It’s about the current dominant model of producing software, its limitations, and how the ZSF knows how to deal with big players that have different interests that conflict with ours.

                        Thanks very much for this. I will definitely do so.

                    2. 6

                      … but big tech jobs are not the absolute best choice for those who really love software craftsmanship and, as it turns out, some of these people have taken a liking to Zig.

                      It’s bullshit to say I don’t “love software craftsmanship” because I don’t work for, and frankly don’t want to work for, a non-profit startup building a new language. I will decide the “absolute best choice” for me. I really like the ideas and motivations of zig, and Andrew seems like a great guy, but your statement is just categorically false.

                      1. 5

                        I might have messed up the English, but I think you have interpreted the sentence in the opposite way of its intended meaning. The sentence doesn’t say that if you love software craftmanship big tech is the worst choice, nor that if you work in big tech you can’t love software craftmanship.

                        What the sentence hints at is the sentiment where if you are a skilled engineer that care about the craft then you have to aim for a big tech job. I used to have relatives tell me that “oh, you’re so passionate, one day you’ll work at google for sure”.

                        I guess it’s hard to have a honest conversation about something that people consider part of their identity. I personally don’t consider my job part of it. I didn’t before working for a SV startup, nor during, and neither I do now.

                        1. 1

                          Maybe this exchange can be of interest to you.

                          https://news.ycombinator.com/item?id=26789129

                    3. 14

                      The “software you can love” idea is interesting, but I guess I don’t really understand the advantage of further muddying the waters in an already super complicated licnesing landscape.

                      I had the exact opposite reaction: “software you can love” is nice but honestly doesn’t actually address the root cause of the problem: the profit motive is toxic to software and users. You can talk about love all you want, but the failure of Open Source shows that any approach that isn’t rooted firmly in anticapitalist principles isn’t going to be very effective in the long run.

                      Getting very strong “you don’t hate mondays; you hate capitalism” vibes from the second half of this piece.

                      1. 5

                        I had the exact opposite reaction: “software you can love” is nice but honestly doesn’t actually address the root cause of the problem: the profit motive is toxic to software and users. You can talk about love all you want, but the failure of Open Source shows that any approach that isn’t rooted firmly in anticapitalist principles isn’t going to be very effective in the long run.

                        I suppose I should remind myself that we can hold two ideas in our minds at once. Capitalism though awful has produced a LOT of incredibly good (and incredibly bad :) ) software through the years. That doesn’t necessarily contradict your statement about profit motive’s toxic effect on the process.

                        1. 4

                          Don’t mix up co-occurrence with causality.

                        2. 4

                          I think small shops such as Panic (https://panic.com/) are doing great: it is for profit, but not greedy. Mega corporations are in a totally different league.

                          1. 1

                            I would maintain that it is not capitalism specifically that is the problem, although the profit motive is usually toxic to a degree. Modern capitalism is nothing like what Adam Smith originally proposed and should possibly not even be called capitalism, I prefer the term Neo-feudalism but that is a bit tongue in cheek. I feel like large corporations have become creatures of their own which we no longer control as a species.

                            The pattern of what is happening with humans vs. corporations is starkly reminiscent of what you see in nature when a newly introduced species of plants or animals crowd out endemic species.

                            Should we be concerned that in the long term corporations will replace humans altogether? If so, should we not be waging all out war against them while we still can?

                          2. 5

                            Honestly, there’s no reason for this kind of attitude.

                            100% agree

                            I work for a large corporation. I’m very happy with it. I don’t see any reason to shit on me for that.

                          1. 2

                            With the dev version of Neovim, I use LSP whenever possible. The integration is much better than grepping around (that I used to do).

                            1. 5

                              The link that should have been posted: https://ziglang.org/download/0.7.0/release-notes.html

                              1. 4

                                It’s worth pointing out that these release notes are incomplete (compared to the previous ones that were exhaustive).

                                The upcoming 0.7.1 should fix that: https://ziglang.org/download/0.7.0/release-notes.html#These-Release-Notes-are-Incomplete

                              1. 2

                                For simple builds, I like using tup. The syntax is light, and it’s very fast to build (I also like the progress output).

                                Documentation could be better though.

                                1. 6

                                  Why is this horrible website asking me to solve Google’s captcha in order to read the article?

                                  1. 3

                                    I reached out to them and got a response. They’d hit a cap for recaptcha calls, they attempted mitigation, and it caused this problem. They’ve pushed an update which seems to fix the issue for me.

                                    1. 2

                                      Cool that your reached out and got a response! Nice of them

                                    2. 1

                                      Haven’t noticed that. Are you a risky visitor? Using tor? Blocking Javascript? Anti Google?

                                      1. 7

                                        Why should being “anti-Google” make one a risky visitor? I have nothing to gain and potentially something to lose from being followed around the web by Google so I take small measures to prevent it from doing so. This sentiment is completely antithetical to the spirit of the web – not to mention that it makes the web more inaccessible/more painful to use for about half the world’s population. It’s legitimately depressing.

                                        1. 6

                                          Send servethehome a message, I can’t help you. But if they have recaptcha (from Google), then blocking Google things is a red flag. They can’t track you so can’t be sure it’s “you”, so you then must be a bug risk, or you must complete the captcha so they can gather more data on you.

                                        2. 2

                                          I’m using Firefox on a macOS. True, there are several extensions that I have (Privacy Badger, DDG Privacy Essentials, Adblock Plus, Privacy Possum), but never ran into this issue.

                                          1. 1

                                            I manage one site where I have Google recaptcha enabled on the entire site for a contact form, and I do sometimes get a captcha as well, on my non regular browser on the laptop that also runs tor, but that is to be expected. But I don’t know why this site does it…

                                          2. 1

                                            On my iPad, the recaptcha popped up at the bottom of the page, leading to a low-contrast read. No tor or blocking, I’m logged into google. I’ll drop a line?

                                            Edit: Comments are broken on the article, “Error: User response is missing.” I left a message in a contact form about both issues.

                                          3. 1

                                            I got the same, quite weird.

                                          1. 2

                                            Nice conversation about build systems.

                                            I’m impressed by the podcast transcript, it makes it so much easier to absord the content rather than listening for 1 hour. I wish it was more common (for instance some talks seem interesting but only available as hours long videos).

                                            1. 1

                                              Yes, indeed. The transcript is very nice (especially if you’re not used to audio podcast format). Really good job here.

                                            1. 4

                                              I wish I read this earlier, as I went through the same experience with a book on fnac.com a few days ago. It was mainly a test to see if they actually offered DRM-free books or not but I wasn’t even able to get the book since I’m on Linux and I don’t really want to mess with a virtual machine for the sake of a simple book.

                                              I sent them an email to complain, and I hope in the near future we’ll be able to enjoy ebooks without worrying. Same as we do for music nowadays (and some games).

                                              1. 6

                                                I use a self-hosted instance of https://tt-rss.org/, and have been for several years. Both with the standard web-ui & the android app. It’s fine. I really enjoy my read history synced between my various devices. It’s not the most elegant UI, it has some quirks, especially in the web-ui, but it’s gets the job done well enough. I’ve tried a few others, but haven’t come across anything that works quite as well.

                                                1. 2

                                                  Also good luck if you wade into the official forums for support or a bug report.

                                                  I’ve also been using it for years because it simply works. Wanted to change servers and use the docker container but I postponed that because that was absolutely not working and I am not in the mood to argue with the maintainer. Not sure what I will do, but I use it together with NewsPlus on Android and don’t really want to change that setup. (That Android app hasn’t been updated for ages but I bought it and will use it as long as it works, because I love it.)

                                                  1. 1

                                                    linuxserver.io had tt-rss as a container they supported but had to stop due to reasonable(?) changes asked of the repo maintainer. The forums seem to be rather hostile. I’ve taken to just cloning and building the image myself (which the maintainer IIRC argued is what they think everyone wants to do) but is categorically the opposite of what I want do. I want a trusted repository in which to pull a minimal image that is up to date.

                                                    Sad links of despair:

                                                    1. 1

                                                      Yes, I also skimmed or read all of those. Some changes were integrated after weeks of discussion but for some reason or other I couldn’t get it to work, just 2-3 weeks ago (could be my setup, sure).

                                                      1. 1

                                                        Ahh, if all you want is an image. Feel free to use mine!

                                                        https://hub.docker.com/r/dalanmiller/tt-rss

                                                  2. 1

                                                    Same here. There is an official package in Arch Linux, I use that.

                                                    1. 1

                                                      I also self-host Tiny Tiny RSS. On iOS I use Fiery Feeds which has a much better UI.

                                                    1. 2

                                                      I’m currently using Manjaro because I wanted to have access to a lot of recent packages. But lately I’m considering a move to NixOS or GuixSD for their declarative configuration, especially for setting up VPS machines. It just feels right, so I’m eager to try it out.

                                                      1. 10

                                                        My development environment is kinda like the UNIX philosophy version of an IDE. I use:

                                                        • Fish as my shell
                                                        • Kakoune as my text editor
                                                        • tmux for windowing and persistent session stuff
                                                        • fzf for fuzzily changing directories and picking files
                                                        • ripgrep and fd for searching
                                                        • kitty as my terminal emulator

                                                        I’m probably forgetting other things, but those are the important ones. My personal laptop runs macOS, but all other machines run NixOS.

                                                        I work almost entirely with Haskell and Nix, so language specific tools include stuff like Cabal, ghcid, ormolu, and HLint. I also use home-manager for declarative package management, as opposed to the more imperative nix-env style.

                                                        1. 2

                                                          As @damantisshrimp said, I also have almost the same configuration:

                                                          • s/fish/bash/
                                                          • s/Kakoune/Neovim/
                                                          • s/kitty/uxterm/

                                                          Some other things that I think it is worth to mention:

                                                          • i3 as window manager;
                                                          • Zeal for offline documentation;
                                                          • w3m for quick internet surfing (mostly StackOverflow and online documentation);
                                                          • it might sound crazy, but the amount of time I use find (application of operations on set of files), awk (querying) , sed (simple modifications), and ed (more complex modifications) daily makes them deserve a special entry in this list.
                                                          1. 2

                                                            I have almost the same environment, except I couldn’t completely switch to Kakoune so I went back to the comfort of Neovim.

                                                            Great setup ;)

                                                          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:

                                                            https://paste.sr.ht/~sircmpwn/3d32eb7bbc564170c3d30f041e5e8dc71aa5a1c6

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

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

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

                                                                        2. 15

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

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

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

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

                                                                            3. 19

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

                                                                                    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.