Threads for cuchulain

  1. 4

    Really great approach! The whole post showcases quite pragmatic approach to the problem they had and how they optimized it for. My favorite sentence is at the end:

    The library works for our target platforms, and we don’t wish to take on extra complexity that is of no benefit to us.

    Truly pragmatic approach: it works for us, if you want, fork and modify to oblivion, we give you a starting point. Wish more software is handled like this and doesn’t include all but kitchen sink.

    1. 0

      More and more people are fortunately adopting the suckless philosophy.

      1. 15

        Unfortunately, the suckless philosophy leads to software that doesn’t do what software is meant to do - alleviate human work by making the machine do it instead. The suckless philosophy of “simplicity” translates to “simplistic software that doesn’t do what you would need it to do, so either you waste time re-implementing features that other people have already written (or would have written), or you do the task by hand instead”.

        If, when required to choose exactly one of “change the software to reduce user effort” and “make the code prettier”, you consistently choose the latter, you’re probably not a software engineer - you’re an artist, making beautiful code art, for viewing purposes only. You definitely aren’t writing programs for other people to use, whether you think you are or not.

        This philosophy (and the results) are why I switched away from dmenu to rofi - because rofi provided effort-saving features that were valuable to me out-of-the-box, while dmenu did not. (I used dmenu for probably a year - but it only took me a few minutes with rofi to realize its value and switch) rofi is more valuable as a tool, as a effort-saving device, than dmenu is, or ever will be.

        In other words - the suckless philosophy, when followed, actively makes computers less useful as tools (because, among other things, computers are communication and collaboration devices, and the suckless philosophy excludes large collaborative projects that meet the needs of many users). This is fine if your purpose is to make art, or to only fulfill your own needs - just make sure that you clearly state to other potential users that your software is not meant for them to make use of.

        Also note that the most-used (and useful) tools follow exactly the opposite of the suckless philosophy - Firefox, Chromium, Windows, Libreoffice, Emacs, VSCode, Syncthing, qmk, fish, gcc, llvm, rustc/cargo, Blender, Krita, GIMP, Audacity, OBS, VLC, KiCad, JetBrains stuff, and more - not just the ones that are easy to use, but also ones that are hard to use (Emacs, VSCode, Audacity, Blender, JetBrains) but meet everyone’s needs, and are extensible by themselves (as opposed to requiring integration with other simple CLI programs).

        There’s a reason for this - these programs are more useful to more people than anything suckless-like (or built using the Unix philosophy, which shares many of the same weaknesses). So, if you’re writing software exclusively for yourself, suckless is great - but if you’re writing software for other people (either as an open-source project, or as a commercial tool), it sucks.

        To top it off, people writing open-source software using the suckless philosophy aren’t contributing to non-suckless projects that are useful to other people - so the rest of the open-source community loses out, too.

        1. 2

          It’s fine to disagree with “the suckless philosophy”, but do please try to be nice to people gifting their work as FLOSS.

          1. 11

            The tone is not dissimilar from the language on the page it is replying to: https://suckless.org/philosophy/

            Many (open source) hackers are proud if they achieve large amounts of code, because they believe the more lines of code they’ve written, the more progress they have made. The more progress they have made, the more skilled they are. This is simply a delusion.

            Most hackers actually don’t care much about code quality. Thus, if they get something working which seems to solve a problem, they stick with it. If this kind of software development is applied to the same source code throughout its entire life-cycle, we’re left with large amounts of code, a totally screwed code structure, and a flawed system design. This is because of a lack of conceptual clarity and integrity in the development process.

            1. 1

              I wasn’t actually trying to copy the style of that page, but I guess that I kind of did anyway.

              @JoachimSchipper (does this work on Lobsters?) My reply wasn’t meant to be unkind to the developer. I’m frustrated, in the same sense that you might be frustrated with a fellow computer scientist who thought that requiring all functions to have a number of lines of code that was divisible by three would improve performance, an idea which is both obviously wrong, and very harmful if spread.

              …but I wasn’t trying to impart any ill will, malice, or personal attack toward FRIGN, just give my arguments for why the suckless philosophy is counter-productive.

          2. 1

            Some people insist on understanding how their tool works.

            I have a few friends like that - they are profoundly bothered by functionality they don’t understand and go to lengths to avoid using anything they deem too complex to learn.

            The rest of open source isn’t ‘losing out’ when they work elsewhere - they weren’t going to contribute to a ‘complex’ project anyways, because that’s not what they enjoy doing.

            1. -4

              Nice rant

              1. 5

                You throw advertising for suckless in the room as the true way, link to your website with the tone described here and then complain about responses ? That doesn’t reflect well on the project.

                1. 0

                  What are you talking about? There is no one single true way, as it heavily depends on what your goals are (as always). If your goals align with the suckless philosophy, it is useful to apply it, however, if your goals differ, feel free to do whatever you want.

                  I don’t feel like replying exhaustively to posts that are ad hominem, which is why I only (justifiably) marked it as a rant. We can discuss suckless.org’s projects in another context, but here it’s only about the suckless philosophy of simplicity and minimalism. I am actually surprised that people even argue for more software complexity, and SLOC as a measure of achievement is problematic. In no way does the suckless philosophy exclude you from submitting to other projects, and it has nothing to do with pretty code. You can do pretty complex things with well-structured and readable code.

                  1. 4

                    While you may find it insulting, I don’t think the comment is ad hominem at all. It’s not saying that the suckless philosophy is defective because of who created/adopts/argues for it. That would be an attack ad hominem. The comment is saying the suckless philosophy is defective because software that adheres to it is less useful than other software, some of which was then listed in the comment.

                    While it’s (obviously) perfectly fine to feel insulted by a comment that says your philosophy produces less-than-useful software, that does not make the comment either a rant or an ad hominem attack.

                    It’s a valid criticism to say that over-simplifying software creates more human work, and a valid observation that software which creates more human work doesn’t do what software is meant to do. And you dismissed that valid criticism with “Nice rant.” If you don’t feel like responding exhaustively, no one can blame you. But I view “nice rant” as a less-than-constructive contribution to the conversation, and it appears that other participants do as well.

                    1. 2

                      My post was neither a rant, nor ad-hominem. You should be a bit more thoughtful before applying those labels to posts.

                      It’s clearly not an ad-hominem because nowhere in my post did I attack your character or background, or use personal insults. My post exclusively addressed issues with the suckless philosophy, which is not a person, and is definitely not you.

                      It’s also (more controversially) probably not a rant, because it relies on some actual empirical evidence (the list of extremely popular programs that do the opposite of the suckless philosophy, and the lack of popularity among programs that adhere to it), is well-structured, is broken up into several points that you can refute or accept, had parts of it re-written several times to be more logical and avoid the appearance of attacks on your person, and takes care to define terminology and context and not just say things like “suckless is bad” - for instance, the sentence “So, if you’re writing software exclusively for yourself, suckless is great - but if you’re writing software for other people (either as an open-source project, or as a commercial tool), it sucks” specifically describes the purpose for which the philosophy is suboptimal.

                      It also had at least three orders of magnitude more effort put into it than your two-word dismissal.

                  2. 4

                    Rather than labeling it a rant, wouldn’t it be more persuasive to address some of the points raised? Can you offer a counterpoint to the points raised in the first or last paragraphs?

                    1. 2

                      It is definitely a rant, as the points adressed are usually based on the question which norms you apply. Is your goal to serve as many people as possible, or is your goal to provide tools that are easy to combine for those willing to learn how to?

                      In an ideal world computer users would, when we consider the time they spend with them, strive to understand the computer as a tool to be learnt. However, it becomes more and more prevalent that people don’t want to and expect to be supported along the way for everything non-trivial. We all know many cases where OSS developers have quit over this, because the time-demand of responding to half-assed PRs and feature-requests is too high.

                      @fouric’s post went a bit ad-hominem regarding “software engineers” vs. “artists”, but I smiled about it as my post probably hit a nerve somewhere. I would never call myself a “software engineer”.

                      Hundreds of thousands of people are using suckless software, knowingly or unknowingly. Calling us “artists” makes it sound like we were an esolang-community. We aren’t. We are hackers striving for simplicity.

                      I could also go into the security tangent, but that should already be obvious.

                      1. 1

                        It is definitely a rant, as the points adressed are usually based on the question which norms you apply.

                        …norms which I addressed - I was very clear to describe what purposes the suckless philosophy is bad at fulfilling. That is - my comment explicitly describes the “norms” it is concerned with, so by your own logic, it is not a rant - and certainly contains more discussion than any of your further replies, who do nothing to refute any of its points.

                        @fouric’s post went a bit ad-hominem regarding “software engineers” vs. “artists”

                        Nor is there any ad-hominem contained in the comment, and certainly nothing around my differentiation between “software engineers” and “artists” - nowhere did I make any personal attack on your “character or motivations”, or “appeal to the emotions rather than to logic or reason”, as a quick online search reveals for the phrase “ad-hominem”.

                        I smiled about it as my post probably hit a nerve somewhere.

                        If you want to refute any of the points I made, you’re welcome to do it. However, if you just want to try to arouse anger and smile when you do so, I’ll ask you to stop responding to my posts, especially with a two-word dismissal that doesn’t address any of my arguments.

                        I would never call myself a “software engineer”

                        …then it should be even more clear that my post was not a personal attack or ad-hominem against you. “You keep using that word…”

                2. 4

                  How does the suckless philosophy interact with feature flags?

                  1. 2

                    Suckless would say you should only have features you use, and instead of feature flags you have optionally-applied patches

              1. 1

                inb4 topic merged and disappeared from front page

                1. 6

                  That would be a shame because I feel this article has insights I haven’t seen elsewhere.

                  1. 2

                    Yeah, the mods have made it very clear that RMS discussions are currently not welcome on the site.

                    1. 8

                      Yes, it happened with this story that links from different days were merged. As with the merge before it. As with the merge before it. As with the merge before it. As with the merge before it. As with the merge before it. As with… I mean, you take the point, but as with the first merge.

                      This is not mods sneakily putting a thumb on the scale to influence a discussion. This is the way merging has worked, as reiterated the day before this story was posted and 106 of the other 192 merged stories. Merging news has always been central to the design of the feature.

                      Users are not especially divided on this and mod action ran the opposite the way of you imagine. This was flagged 35 times as being off-topic and once as spam, making it the most-flagged story in Lobsters history, and I chose to leave it up anyways. The FSF has been transformational for our profession and I thought maybe it would go OK.

                      There’s also a proper meta thread I’ll add some more thoughts to when I have time away from work, just wanted to leave a note here because you’ve repeated this conspiracy theory many times on-site and in chat this last week, so clearly it’s important to you.

                      1. 3

                        I thought that the merge feature was originally for articles on the same news story, reporting very similar content, not for “everything related to a topic must go into this one place” but I guess I was wrong. Fact is that the story I commented on here was relatively positively received, while the original post that everything was merged into wasn’t. And the content within them is not at all similar. Which means merging effectively disappears the positively received thread from the front page, introduces ridiculous and unnecessary confusion, and reduces the chances of anyone stumbling onto the topic on lobste.rs from reading the positively received and upvoted post and its thread. I would like if from now on all posts about Github are merged into a megathread every week to match the current rule, it’s obviously what the users want.

                        1. 2

                          Eh, I don’t think you’re doing anything all the conspiratorial (or you’d be in a conspiracy of one, if so), just that I think you got tired of seeing people argue about pedophilia and dismayed to see a lot of downvotes on a story, so figured that arguing from prior jurisprudence would be appropriate for this case. I disagree. This case was different than prior ones you’re citing. I think that mergedeleting erased a pretty big story to the point that a lot of people didn’t even see it and confused a lot of different threads into one, effectively silencing the discussion.

                          I think this was big enough news with different enough development that it warranted a few separate threads. I didn’t see newer threads getting downvoted into oblivion nor more pedophilia flamethreads popping up, but doubtlessly you can see things I can’t.

                          1. 1

                            yeah to be clear I don’t think it’s like a conspiracy either lol, I just disagree with the decision

                        2. 7

                          mods have made it very clear

                          That’s a weird way of referring to “users of lobste.rs”.

                          The original post, the ur-text of this entire kerfuffle, was equally upvoted and flagged. The only mod action after that was, as per policy, fold further update posts into that original one.

                          I didn’t flag the original post as off-topic, but it was a borderline decision for me. I did hide it though. I personally don’t think the topic of “tech people behaving badly” is on-topic for lobste.rs.

                          1. 6

                            The users are divided on this.

                            If there was user unanimity, there wouldn’t be need for further action. The Lobsters software would automatically bury a story that had nothing but downvotes.

                            Mergedeleting story after story is a clear moderator policy, not a reflection of user consensus.

                          2. 4

                            They do it on many topics where there all about the same thing. It’s happened to one of my before, too. There were actually several times more articles on the RMS situation than that one IIRC.

                            1. 4

                              Yeah they should just drop the pretense along with the “culture” tag.

                            2. -2

                              boom

                              1. -2

                                lol

                            1. 2

                              Today I finally made the jump and gave my 8 year old but still fantastic laptop (a Toshiba A300-1M9, it has more stuff on it than modern laptops!) a long overdue upgrade. Nothing as fancy as what’s in the article, sadly, 256G was all I could afford. I received the SSD, unpacked it, and was already flummoxed that this little thing, weighing nothing, is able to pack so much data and can work at such a high speed.

                              To satisfy my curiosity I copied a 10GB ccache volume from the old disk to a zram block device on my desktop, and from there to the SSD. Took 30 seconds exactly which is just, I have to say the word, amazing.

                              On one hand it’s money well spent. But on the other hand, the price for these things - mine costed €80 - seems to be artificially high. Why oh why do they have to be so expensive? And now this, 15 TB, on a 2.5" device with even higher transfer speeds, too! Holy mackerel!

                              Sadly, Samsung said nothing about the price in the article. But it must be unaffordable. Or will developments like these drop the price for lower size such as mine.

                              Whatever the case may be, 15TB on 2.5" seems incredible. Where does it end, i.e. how much is the theoretical maximum for a 2.5" drive?

                              1. 3

                                The price is high for a reason - there is massive demand. As popular as SSDs for laptops etc are, something like 96% of the NAND produced is consumed by cellphones.

                                SSD prices are coming down steadily too - every year there is improvement in the fabrication process (50nm -> 30nm -> 21nm etc) which means better density/dollar, although we’re hitting the limits of that now. There are also technology improvements along the way, like Samsung’s V-NAND (3-D stacked NAND) which is what makes this 15TB drive possible. The same kind of flash (48-layer V-NAND) is used in this 2TB USB3 SSD

                                I’d expect the price for that 15TB drive to be somewhere between US$0.50 and US$1/GB (so, $8K -> $15K, at a guess), although a SAS SSD like this one usually commands a premium over SATA SSDs, so the upper end of that range is more likely

                                On the flip side, in terms of IOPs, you could replace an entire disk shelf of the fastest spinning drives with one of these, and still have spare capacity. For some parts of the industry, this is exactly what they’ve been waiting for: an extremely high capacity drive that will sustain 3 complete drive writes per day.

                                1. 1

                                  Whatever the case may be, 15TB on 2.5" seems incredible. Where does it end, i.e. how much is the theoretical maximum for a 2.5" drive?

                                  I don’t know, but I’m guessing the tradeoff with capacity is how reliably you can get the data out. FS’s like ZFS ans BTRFS might be required to use these larger capacity drives just because they are more likely to corrupt data (I don’t know if they are, but seems likely, at least now).

                                1. 5

                                  “Furthermore, those are probably the maximum "turbo” frequencies being quoted, which are unlikely to be sustained under any kind of real multi-core load. "

                                  A simple google search could have supplied him the answer to this, which is extra weird since he did link to the intel ark for the i5 chip. Spoiler: The atom does not have a “turbo” mode.

                                  The atom also isn’t a terrible option, as it does have some benefits. The atom supports up to 64GB of ECC ram, and supports up to PCIE x16, which could be handy if you need to slap in a 10g chelsio or something. I think the atom also has a larger L2 cache (I vaguely recall the i5 having a smaller L2 cache, but a larger L3 cache). The atom chip is also a bit cheaper.

                                  I do agree that the integrated stuff from netgate/pfsense does seem a bit pricey. The ones from the pfsense store come with support though – cheaper if you don’t need the support to simply purchase directly from netgate without support.

                                  1. 3

                                    It gets worse. That’s actually an 8-core Rangeley CPU ( a variant on Avoton, which was pitched as a “server-grade atom”), which was designed for routing/comms situations. Factoring the 8 cores in, it actually performs about the same as his chosen i5-5200U. Rangeley featured Intel QuickAssist, which does a lot of crypo offloead - basically exactly what you want for a VPN endpoint, the stated intended use.

                                    Of course, for $1400 you get a lot of scooter computers. They’re almost certainly the right fit for him, as he ended up using them for other things. If I wanted a cheap VPN endpoint I’d go for an Ubiquiti Edgerouter Lite at the moment - sub $100, hw accel forwarding @ gige. It’s not a generic “scooter computer” though…

                                    1. 2

                                      Edgerouter lite’s are pretty nice. I have one in fact! I got it to fiddle around with – I currently use a lanner box with pfsense on it for my home FW. However, do note that if you aren’t using ipsec, the vpn throughput is going to be slow, as openvpn does not utilize the edgerouter offload/acceleration chip. Just something to be aware of.

                                      As to $1400 buying lots of scooters… this (or even just the board) is a bit more comparable if you don’t need support for pcie/10g stuffs.

                                  1. 6

                                    This seems like a bad compromise.

                                    No computer should need to be powered off to replace a disk in a RAID set (SATA and SAS are electrically hotswappable, and the majority of controller chipset drivers actively deal with hotswapping; the ones that don’t can be manually rescanned anyway in my experience). If your chassis is such that you have to power it off to physically remove a drive, then it’s worth looking at fixing that, rather than introducing a second system with presumably the same issues. Regarding the RAID toolset, “having to re-learn” the RAID management tools is just another way of saying “I didn’t document my tools properly”.

                                    Having an entire second system running as a redundant copy is expensive in terms of space and power. It also introduces it’s own risks, the obvious one is that there’s no way of detecting any silent bit errors, and any such errors will be silently copied to the redundant system. Modern RAID systems (even mdadm) will do proactive disk scanning and will pick up any silent bit errors and correct them from the RAID set if needed.

                                    This approach still doesn’t cover you against a double-disk failure: What if a disk in your primary fails, and at the same time a disk containing the same (or at least some of) the data in the secondary system fails? There is somewhat less risk here than a second disk in a single RAID5 set, but it’s still there. Just as RAID is not equivalent to a backup, neither is this approach.

                                    1. 3

                                      The irony here is that they, an enterprise, have enough redundancy and infrastructure to handle the failure rate of consumer-grade drives while I, a consumer, just want the damn thing to work so should probably get an enterprise-grade drive.

                                      1. 1

                                        It sounded like enterprise drives offered no measurable improvement in reliability.

                                        1. 2

                                          Close: Enterprise drives offered no measurable improvement in reliability for their sample and their workload.

                                          They didn’t do great statistics, just said something like “we saw 4.6% failure on the enterprise drives and 4.2% failure on the consumer drive”, but no expression of confidence. Furthermore, their systems with enterprise drives were running their core services for the most part, and their consumer drives were not. They had one pod with enterprise sata drives and claimed a ‘statistically consistent’ result, but this is tiny sample - 45 ES drives in a pod vs ~370 ES drives in total vs ~14700 consumer sata drives in total.

                                          Furthermore, 4.2% is still atrocious, given their pod workload. Or at least, their presumed workload, because they haven’t gone into it much, at least as far as I’ve seen. What I do know is that their model is for customers to do bulk uploads (slow sequential writes) on their systems, which then sits round for ages, and maybe gets read occasionally. It’s fairly unlikely that data gets overwritten at any great rate. Nothing wrong with this model at all, but it’s nothing like an active mail, database, or file server, for example.

                                          As caboteria said, this doesn’t really matter for Backblaze - they can deal quite happily with a 4.2% failure rate because their operational and data models work fine for it. So if you’re looking at doing something that has similar data/drive use characteristics to what Backblaze do and can swing the same operational model, you’re fine.

                                          But that’s about as far as their analysis goes, and I wish they’d be more honest about that.