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

      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!


                      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:


                                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.