1. 9

    I still can’t believe Go punted on providing a way to turn an enum value into a string without code generation. What a spectacular waste of an opportunity to do a better C.

    1. 4

      Dismissive comments like this are not constructive and do not belong in any environment that encourages the evolution of opinion. If you have a strong opinion about something (e.g. code-generation) then back up that opinion with a strong argument.

      1. 2

        please, not this discussion again.

      1. 3

        you can get free dns services (including just-slave) from hurricane electric: https://dns.he.net/

        1. 3

          Also, Cloudflare provides DNS in their free plan. Though it doesn’t cover all record types, it’s still pretty good.

          1. 2

            That’s very interesting (and quite rare), thanks! How did you hear about it?

            1. 2

              i run a he ipv6 tunnel for some years now, i guess it was recommended by a friend back then. i can only recommend the free hurricane electric services, never had any problems. they even send me a new t-shirt when my free-ipv6-certification-sage-t-shirt got lost in international mail :)

          1. 1

            just came to my mind: in case there’s a security vulnerability in package parsing in apt (or one of the libraries it uses), an attacker could craft a package exploiting this vulnerability inject it into a unencrypted http connection. this would likely be undetected if the exploit is sophisticated enough (which it will be, i guess).

            1. 3

              i remember mr. poettering saying that bsds aren’t relevant anymore in 2011: https://bsd.slashdot.org/story/11/07/16/0020243/lennart-poettering-bsd-isnt-relevant-anymore

              guess they are still here.

              1. 2

                “Lennart explains that he thinks BSD support is holding back a lot of Free Software development”

                I can think of something else which is holding back a lot of Free Software development.

                1. 1

                  Poettering’s approach to software development seems to make it clear that he doesn’t see any value in the continued existence of the BSDs. I think that they are an important part of the larger open *Nix world/ecosystem and that Linux benefits from their existence so long as there remains some degree of compatibility. I will say that I think the BSDs’ use of a permissive rather than reciprocal licence I think had been bad for them in the long run.

                  1. 1

                    I don’t think that it’s not about the *Nix world/ecosystem or that Poettering just doesn’t care about BSDs. His attitude seems to be more like that people and distros not wanting to buy in on systemd and/or pulseaudio or in general his software or designs are irrelevant - or approaches that aren’t compatible with his. I think the wrong statements he made leading to uselessd disproving them and OpenRC disproving a lot of them as well made that clear.

                    Now people have different opinions about systemd, but from my experience projects ignoring the rest of the world tend to turn out bad on multiple levels. Other than that portability often (not always) is an indicator for code quality as well.

                    But going a bit off topic. What I want to say is that even though BSDs are mentioned the statement also targets every distribution not relying on systemd. It’s just that most of them aren’t exactly “mainstream”, which is why I think they are ignored and not mentioned.

                1. 16

                  If folks actually read this story Firefox is working pretty hard to make this a non invasive, non privacy compromising feature change, and they’re also opening themselves up for public comment.

                  Consider voicing your objections rather than simply jumping ship. Having a viable open source option is important for the web ecosystem IMO.

                  1. 15

                    If folks actually read this story Firefox is working pretty hard to make this a non invasive, non privacy compromising feature change, and they’re also opening themselves up for public comment.

                    i just want a freaking browser engine with the possibility of enhancements via extensions. i don’t want to turn off magick features. i just want a browser which displays websites. the new firefox engine is really great, but i fear that now they slowly fill firefox with crappy features until its slow again.

                    1. 3

                      What happens on the “New Tab page has zero effect on page load times. If you don’t like what the New Tab page looks like, customize it. Some of your options are:

                      • set it to blank
                      • install an extension that takes over
                      • customize the current experience

                      For the last option, click the little gear icon in the top right and you should see this https://imgur.com/a/1p47a where you can turn off any section that you don’t like.

                      1. 7

                        yes, i know. i still don’t want these features shipped and active by default. if i want pocket, i could install it as extension. heck, i wouldn’t mind if they said “hey, we have this great extension named pocket, care to try it out?” on their default new page, with a link to install it. but not shipped by default.

                        1. 4

                          What happens on the “New Tab page has zero effect on page load times.

                          I don’t care so much about page load times; sites which care are already fast (e.g. no JS BS), whilst those which don’t will soon bloat up to offset any increase in browser performance.

                          My main complaints with Pocket/Hello/Looking Glass/pdf.js/etc. are code bloat, install size, added complexity, attack surface, etc.

                          1. 1

                            You can’t do that on mobile.

                      1. 2

                        Any security minded people have thoughts on this?

                        1. 13

                          Debian’s security record regarding CAs is atrocious. By this I mean default configuration and things like the ca-certificates package.

                          Debian used to include non-standard junk CAs like CACert and also refuse to consider CA removal a security update, so it’s hugely hypocritical of this page to talk about many insecure CAs out of 400+.

                          Signing packages is a good idea, as that is bound to the data and not to the transport like https so in principle I agree that using https for debian repositories doesn’t gain much in terms of extra security. However these days the baseline expectation should be that everything defaults to https, as in no more port 80 unauthenticated http traffic.

                          Yes, moving over to https for debian repositories breaks local caching like apt-cacher (degrades it to a tcp proxy) and requires some engineering work to figure out how to structure a global mirror network, but this will have to be done sooner or later. I would also not neglect the privacy implications, with https people deploying passive network snooping have to apply heuristics and put in more effort than simply monitoring http.

                          Consider the case where someone sitting passively on a network just monitors package downloads that contains a fix for a vulnerability that is exploitable remotely. That passive attacker can just try to race the host and exploit the vulnerability before the update can be installed.

                          Package signing in debian suffers from problems with the underlying gpg level, gpg is so 90s in that it’s really hard to sustainably use it long-term: key rotation, key strength are problem areas.

                          1. 4

                            Package signing in debian suffers from problems with the underlying gpg level, gpg is so 90s in that it’s really hard to sustainably use it long-term: key rotation, key strength are problem areas.

                            What do you consider a better alternative to gpg?

                            1. 10

                              signify is a pretty amazing solution here - @tedu wrote it and this paper detailing how OpenBSD has implemented it.

                            2. 4

                              non-standard junk CAs like CACert

                              imho CACert feels more trustworthy than 90% of the commercial cas. i really would like to see cacert paired with the level of automation of letsencrypt. edit: and being included in ca packages.

                              1. 2

                                With the dawn of Let’s Encrypt, is there still really a use case for CACert?

                                1. 4

                                  i think alternatives are always good. the only thing where they really differ is that letsencrypt certificates are cross signed by a ca already included in browsers, and that letsencrypt has automation tooling. the level of verification is about the same. i’d go as fas as to say that cacert is more secure because web of trust, but that may be just subjective.

                            1. 2

                              Iä!

                              1. 19

                                i bet i’ll be shunned for this:

                                shes really privileged:

                                • “blessed” with self confidence
                                • has enough money to travel. and i bet it wasn’t her money. sorry.
                                • she has the funds to decide that she does a “boot camp” in the USA, despite university is tuition free for her in sweden (or selected EU countries which don’t have fees).

                                edit: to clarify: she does deserve her success, but from my point of view she had it easier than many. most of the advice is common sense. i’m still not sure where to get the 4 hours for personal projects from if - as advised - i sleep enough. and being healthy at 19 is much more easy than being healthy if you are older.

                                1. 5

                                  she does deserve her success, but from my point of view she had it easier than many. most of the advice is common sense. i’m still not sure where to get the 4 hours for personal projects from if

                                  These all ring true even though I thought she was awesome. She’s attractive, confident, well-funded, and figured out how to work crowds by 16 IIRC article. Her results such as timing or number of recruiters calling her might in no way apply to the average person following her programming or career advice. However, she still had interesting things to say that they might learn from. Of the privileged people, she was also at least being helpful to others in one of her boastful moments. Plus, I give everyone digging into coding a little props for that, too, as a “Welcome to programming! You’re one of us!” sort of thing. :)

                                  1. 5

                                    This comment feels a little…something.

                                    “blessed” with self confidence

                                    Do we know this? Or has she simply figured out effective ways to put herself out there? There are plenty of highly productive people that battle mental disorders, in fact, their productivity may be a way to keep them at bay.

                                    My point is to say we shouldn’t presume things by looking at a few attributes of a person’s life.

                                    1. 2

                                      Do we know this? Or has she simply figured out effective ways to put herself out there?

                                      i guess “putting herself out there” took at least some confidence, more than many people have. maybe i could have picked my words more carefully.

                                      There are plenty of highly productive people that battle mental disorders, in fact, their productivity may be a way to keep them at bay.

                                      yes.

                                      My point is to say we shouldn’t presume things by looking at a few attributes of a person’s life.

                                      i wrote it because based on the article i got this feeling. for example:

                                      I’ve always been very independent: I moved to another country by myself when I was 18, travelled a lot on my own during my teens, and have always been busy doing anything to improve my future. I’ve never felt pressured into doing stuff because society wanted me to, I’ve always done my own thing.

                                      at last: why is it bad to say someone is self confident? i didn’t write egocentric ;) it’s a character trait that is usually viewed as a positive thing in our societies. one has it usually more easy if one is self confident.

                                      1. 1

                                        It isn’t bad to say someone is self-confident :)

                                        My point was to not view these traits as immutable, or bestowed. I have little doubt this is a result of her working on said traits, rather than them being bestowed.

                                    2. 3

                                      Any advice you see posted online (or anywhere else for that matter) is only going to apply to some of those who read it, and it’s going to completely miss the point for many others. It’s nearly impossible to provide advice that’s useful to everyone who reads it. While it can be worthwhile to point out things like this that may have also played a role in her success, it doesn’t negate the other things.

                                      1. 4

                                        Most people on this forum had it better than 5/6ths of the world population. You’re really splitting hairs.

                                        1. 1

                                          i thought a discussion board is about splitting hairs? :)

                                          Most people on this forum had it better than 5/6ths of the world population.

                                          that’s just stating the obvious. the 1/6 part still has a large standard deviation.

                                          1. 4

                                            Sure, in a 7 billion population even the top percentile has a large spread of wealth. It’s always more fun to look up :)

                                            What I was getting at is she is a first world girl without college education who started a technical career as a teen. Sure she didn’t have to walk to boot camp barefoot in the snow, but it’s uncommon enough in 2017 to be of notice.

                                      1. [Comment removed by author]

                                        1. 8

                                          Somehow, I was able to program without Google and Stackoverflow for twenty years or so. And perhaps you went to a better college than I did, but the assembly taught there was minimal and we never did learn low-level network details and compiler writing was a graduate level course (and as an undergrad, I helped a few grads with their compilers for that class).

                                          In fact, I’ve learned more on my own than I ever did in college (Programming 101 for me was in Fortran).

                                          1. 7

                                            As a person who switched into CS from Physics, I don’t feel like not having a formal grounding has been a huge problem. Most of that you can learn in books and essays. Looking back, the most helpful classes were in the humanities. That’s where I learned a lot of important soft skills:

                                            • Editing and proofreading things I wrote
                                            • Making (somewhat more) watertight arguments
                                            • Finding obscure or missing primary sources
                                            • Detecting bias, agendas, or holes in secondary sources
                                            • Identifying That Kids
                                            • Ruining discussions by appealing to Wittgenstein

                                            But, if one’s a js dev, one should have enough problems with the mataphysical concept of equality, to bother with actual equations /s.

                                            Don’t be rude. Knowing a harder language doesn’t make you smarter than a person who uses JavaScript. It just makes you a person who knows a harder language.

                                            1. 4

                                              Don’t be rude. Knowing a harder language doesn’t make you smarter than a person who uses JavaScript. It just makes you a person who knows a harder language.

                                              It helps to know “harder” languages, as you gain understanding what happens at the lower levels (with C for example). It also helps with creative thinking if you know a broad spectrum of languages (and maybe some of the things about languages and compilation), as it exposes you to different ways of thought.

                                              1. 3

                                                Oh, I definitely agree! Learning harder languages can stretch your mind and expand your skills. I was objecting to the idea that being s js dev means you’re not smart or don’t understand programming. You can’t just a person’s ability just by how many languages they know.

                                                1. 2

                                                  So should I learn Malboge? ;)

                                                  1. 5

                                                    Learning Malbolge definitely counts as exposure, but I think it’s measured in Sievert.

                                                    1. 1

                                                      the ternary number system sounds interesting enough ;)

                                                      not that i’m in any position to give advice:

                                                      • knowing a bit C has helped me
                                                      • (ba)sh, together with other classic tools is sometimes exactly the right tool.
                                                      • a general purpose scripting language. i like python for this.
                                                      • any modern compiled language like go or rust. i still have to give rust a look.
                                                      • something functional is always nice for the different approach to problems. i never used one for anything of relevance, but worked through a few tutorials.

                                                      related: https://pragprog.com/book/btlang/seven-languages-in-seven-weeks

                                              1. 2

                                                apart from the quality issues of this article, my reason is:

                                                <rant> i don’t want to add to the pool of semi-working-oneshot-garbage. it seems the modus operandi is to just put it on github, regardless if it is working/well engineered. most things are sold as the best thing since sliced bread, even if they are only working half of the time, if the stars are aligned correctly and mongorb, redis and docker are involved. </rant>

                                                while i have some things cooking which may be mildly interesting, i’d rather wait to find the time to add good documentation and clear bugs before making things public.

                                                1. 3

                                                  this mixes several issues:

                                                  • parsing paths (”/” being root deviates from the other usages of “/”):

                                                    • working with paths only isn’t too complicated imho, the go stdlib packages for this are rather small (see path and filepath).
                                                  • environment to parse paths in (spaces as seperators):

                                                    • parsing shell languages is a whole other topic, i guess the oil shell articles frequently linked on lobsters show a good part of that madness.
                                                  • file system / os design (symlinks vs. bind mounts):

                                                  so i guess not paths are madness but the world surrounding them. seems to be a reoccurring theme.

                                                  1. 1

                                                    Bah. Old Bell Labs Unix guy pines for the days when there was only one computer, wants one global namespace for all data? It’s like he slept through the whole personal computer era. His head is very much in The Cloud. A concept this unabashedly totalitarian could only have been incubated inside Google. I mean, it reads just like every single proprietary “universal” consumer cloud storage business plan, only writ larger, with protocols that no incumbent big player has any incentive to adopt.

                                                    Anyone’s “ownership” of information they don’t have physical control of is questionable at best. After that we’re at the mercy of encryption and (maybe) laws. No mention of either here.

                                                    Oh, and the technical challenges! Security is shrugged off. No mention of network partitions or other offline modes. No mention of versioning or mutability. No mention of prior art like Tahoe-LAFS or DAT or so many others. I’m reminded of the old quip about the “only two hard problems in computer science”: cache invalidation and naming things. This takes on both, simultaneously, at a grandiose scale. I feel confident in predicting its total failure. Networking will not be reduced to a file system. If it could be, it would have happened long ago.

                                                    I’ve admired various things that Rob Pike has done, but if this represents his vision, I must say I find it both somewhat morally objectionable and deeply confused about the nature of locality as it pertains to information and communication.

                                                    1. 2

                                                      you should read a bit more about it on https://upspin.io, there are design docs there regarding your criticism. the article here is more of a pamphlet about what is wrong and how it should be. upspin is an experiment after all.

                                                      1. 25

                                                        wait, it has 17 upvotes (if one is to believe the archived version) and then got deleted?

                                                        edit: and the “hate post” self-description was clearly sarcasm. even a non native speaker can see that. can we pretty please just use the voting system for moderation except for extreme cases (like, real hate speech)?

                                                        1. 34

                                                          Yeah, I’m not immediately sure how I feel about this. I agree that the comment was low-value, but I also haven’t traditionally felt that my feeling alone should be sufficient justification to delete, in part because others might disagree. That’s never been how lobste.rs does things.

                                                          I do acknowledge that without the accidental recursive deletion, the impact would have been lower, and of course that aspect of it was a one-off.

                                                          Now that the technical migration is done, the new leadership team should all talk at some point about moderation philosophy and get on the same page.

                                                          1. 13

                                                            why was it low-value? just because of the wording? the title said “minimal”, and that is at least a bit hazy in its meaning. so saying that electron isn’t minimal is a valid point in the discussion. even with a grain of sarcasm.

                                                            1. 7

                                                              To me personally it was low-value because it took me a while to understand (might have been easier if I’d seen it while it was up and therefore the article’s subject matter in mind…), and because I didn’t feel that I got much out of it after putting in that effort. It was a valid and accurate criticism of Electron and of the article, without being a constructive one.

                                                              It’s certainly legitimate to express feelings about the article and about Electron, and I appreciate that many people have strong feelings on technical subjects, and I wouldn’t ask anyone to suppress those feelings. I don’t think it’s something that shouldn’t have been said. But if I’d personally said something this short I’d have expected to be downvoted.

                                                              My personal approach is that if I don’t have anything to add about how we got to this bad situation, or how we might get out of it, I just don’t say anything. This is out of respect for the time people spend reading this kind of remark, and with awareness that it takes time away from reading other pithy critiques. :) I do not consider it appropriate to enforce that on others though.

                                                              1. 1

                                                                My personal approach is that if I don’t have anything to add about how we got to this bad situation, or how we might get out of it, I just don’t say anything. This is out of respect for the time people spend reading this kind of remark, and with awareness that it takes time away from reading other pithy critiques.

                                                                If it comes in the form a one-line comment less than twenty words long, I think the dear citizens of Lobsters will be able to stomach having your opinion fly across their screen without much hazard, no matter how non-substantive it is.

                                                                1. 3

                                                                  That’s fair. I guess I over-emphasized concern for others’ reactions: Only saying things I consider worth saying is mostly a thing I do for myself.

                                                            2. 9

                                                              And, hopefully, have that moderation philosophy align with the people using the site!

                                                              1. 17

                                                                It does to be fair go in both directions to some extent, since moderation philosophies impact who you get on a site and vice versa. But it’s tricky here because it’s a change in moderation team. People signed up basically expecting the jcs+Irene brand of moderation, but it’s not clear the pushcx brand is the same as that one. I personally feel very comfortable with the previous two moderators, and if they wanted to become a bit more hands-on as the community grows, I wouldn’t be too worried, because I trust how they’ve moderated the site so far. But a new moderator becoming significantly more hands-on than the existing moderation team makes me more nervous.

                                                                1. 4

                                                                  I can’t speak for pushcx; I’ve always considered that a constraint. I believe I’m on record with it, although I can’t find the comments right now.

                                                                2. 5

                                                                  FWIW, I think that any shift in moderation philosophy isn’t necessarily bad - I just hope it’s something discussed openly as a meta post, considered thoughtfully, and implemented transparently. That transparency was one of the features that pulled many people here and I’d hate to see it change.

                                                                  1. 4

                                                                    It had a lot of value for me, it told me that it uses Electron, which I try to avoid. Just because something has low value for you does not mean it has low value for everybody.

                                                                    1. 0

                                                                      Yeah, I’m not immediately sure how I feel about this.

                                                                      I am: a censor abused his powers. In a just world, he would be forced to step down and suffer with the rest of us mortals. Fortunately for him, this is not a just world.

                                                                    2. 11

                                                                      Final count according to the author was 23 and -4

                                                                      1. 9

                                                                        Upvotes are not necessarily a good way to judge a comment. People are herd animals, and it’s easy to upvote. There is a type of post that optimizes for “time taken” and “upvotes received:” the “zinger.”

                                                                        1. 20

                                                                          up/down votes are imho a clearly better moderation system than randomly deleting posts out of a mood.

                                                                          1. 11

                                                                            I don’t agree. Upvotes are very prone to herd movements and rarely express a useful policy in aggregates.

                                                                            1. 7

                                                                              Since we’re in meta territory here: I’ve found that the score hiding feature at least seems to weed out some of the herd tendencies.

                                                                              Maybe we should look at adjusting the score visibility threshold up? Or keep the score hidden for a bit longer?

                                                                              1. 8

                                                                                maybe just don’t show the score except for the poster so the feedback is still there, but the herd effect doesn’t kick in

                                                                              2. 3

                                                                                but what’s a better alternative? at least with (down-)votes there is a feedback, maybe to better state a point via an edit. i always had the feeling the votes worked rather good here.

                                                                                1. 5

                                                                                  This still doesn’t make them “clearly a better moderation system”. A mix of both is very usual and proven.

                                                                                  1. 5

                                                                                    This still doesn’t make them “clearly a better moderation system”.

                                                                                    like i’ve said: “imho”, but i have felt as i typed “clearly” that it would be a point of criticism for some.

                                                                                    A mix of both is very usual and proven.

                                                                                    to quote myself:

                                                                                    can we pretty please just use the voting system for moderation except for extreme cases (like, real hate speech)?

                                                                          2. 1

                                                                            can we pretty please just use the voting system for moderation except for extreme cases (like, real hate speech)?

                                                                            And how is “real” “hate speech” defined? In reality, the term is just a catch-all excuse for censorship of various kinds.

                                                                          3. 0

                                                                            if this causes a “problem” in moderation lobste.rs is pretty much dead to me.

                                                                          1. [Comment removed by author]

                                                                            1. 34

                                                                              I fully agree with you on this. The best moderation is moderation no one notices. I read the original comment and it started a valid dialogue. It wasn’t hateful, it was an obvious joke about not being a fan of electron.

                                                                              @pushcx you are power tripping in removing comments alone, but your attitude after the fact is just unbelievable. I’ve been part of this community for years now and you’re making me rethink that now after just a week. I don’t have any interest in contributing or being part of this community if that’s how you want to run it.

                                                                              Edit: who downvoted this as “troll” and why?

                                                                              1. 0

                                                                                Edit: who downvoted this as “troll” and why?

                                                                                Some people still use downvotes as a form of protest. I recently had an “incorrect” downvote on a simple piece of info directly from the Go documentation: https://lobste.rs/s/nvfu1o/implementing_gos_defer_keyword_c#c_xkzj1u

                                                                              2. 7

                                                                                @pushcx needs to step back

                                                                                That’s a bit harsh, don’t you think? However, I do share your view that moderators should not shape the discourse instead anyone should be able to decide for himself what a hate/unacceptable/whatever post or comment is and what not.

                                                                                1. 0

                                                                                  -1 incorrect, -1 troll

                                                                                  Ok, I can accept the incorrect flag but troll, really? Can someone please explain why my comment was flagged as trolling?

                                                                                  1. 3

                                                                                    I had 2 troll downvotes on my response to this. Maybe they’re trying to self-identify?

                                                                                2. 5

                                                                                  I’d like to see @pushcx step down for a few months and wait to be democratically elected (supported?) to return to a moderator position.

                                                                                  1. 8

                                                                                    Does this mean we’d have to form some kind of committee? How do we determine who gets to vote and how that vote takes place?

                                                                                    From discussions on IRC, and @pushcx’s comments in this thread, the deletion of the whole thead was unintentional and recovery of those comments may be difficult. This is clearly a mistake, but one that I feel is understandable and forgivable.

                                                                                    As for the deletion of the comment intended, that may also be a mistake, but one with deeper consequences. I, for one, thought the “hate post” was a low value comment that didn’t need to be made in the first place. I am indifferent to it being there at all and probably would downvote it if was still there. The fact that it’s gone doesn’t bother me. The only thing that gives me pause is that it was deleted since this is the first time something like this has happened here, to my knowledge.

                                                                                    My personal view is that pushcx jumped the gun, but I don’t want it to be a regular occurrence, but on the other hand, it’s consistent with his previous views on moderation, as I recall. I’d prefer a less heavy handed approach, where the moderator can hide the post, the post indicates that it’s been moderated, and you have to click through to see it.

                                                                                    On the other hand, I agree with pushcx in that I don’t want to see more “hate posts” because I don’t think they help the community.

                                                                                    1. 6

                                                                                      I would like this too. I think it is a good compromise. I loathe comments like the one in question, and would love to see less of them.

                                                                                    2. 1

                                                                                      Maybe just let people elect whether mods should be able to delete comments for arbitrary reasons? I’m just as crazy about this as you seem to be (which is to say not at all), but @pushcx has put a lot of work in and I’d hate to see that all put on hold for three months just because of one misstep.

                                                                                    3. -5

                                                                                      If you don’t like moderators, usenet is still up. Godspeed.

                                                                                      EDIT: A less grumpy response is that every active community has moderation, and with good reason. The places that have little to no moderation like Usenet and 4chan are very, very different culturally. And not in a good way, in my opinion.

                                                                                      1. 27

                                                                                        who had 8 days in the post-migration death pool?

                                                                                        EDIT: since we’re getting less grumpy ;)

                                                                                        We’ve been running under new management for eight days. The previous comment-killing moderations were, in reverse-chronological order:

                                                                                        • as the site was finding feet
                                                                                        • to correct an obvious issue
                                                                                        • “language” - not sure what that one is.

                                                                                        People are going to be rightfully nervous when they perceive a change in the tone of moderation. Especially when the comment in question was maybe trolly but definitely not anything excessive.

                                                                                        1. 15

                                                                                          I don’t think “no moderation” is even a meaningful concept. As detailed at length in the classic essay The Tyranny of Structurelessness, when the people who provide a community with its venue decline to get involved in questions about what kind of community it is, other people step in to do that. I’m sure you can think of the same people offhand who’ve been doing that here as I can. :)

                                                                                          1. [Comment removed by author]

                                                                                            1. 10

                                                                                              I agree with that. I’m sure that we differ on details, but I want the process to be transparent and clear.

                                                                                              1. 2

                                                                                                Could you please link to some successful communities that rely on a democratic moderation process and limit moderators limited to spam/dmca?

                                                                                                1. 12

                                                                                                  Most of the good mailing lists I’m on are sort-of like that, though it depends on what you mean by “democratic”. For technical reasons moderators obviously don’t delete messages on mailing lists, and interventions on the ones I’m on are usually limited to banning users who repeatedly refuse to follow community norms, plus occasionally gently intervening in wildly off-topic threads to suggest maybe they could be taken offlist. Usually by the time someone’s banned there’s a pretty good consensus that most of the people want them gone, so the moderator is in a sense just carrying out the prevailing view, though it’s not democratic in a formal sense like there being votes or anything. (I do think up/downvotes are not a great mechanism.)

                                                                                            2. 8

                                                                                              shots fired

                                                                                              edit: fair enough, but there are shades of moderation level, usenet and 4chan haven’t really moderation from the userbase, while lobsters has and it should be favored over moderation from admins.

                                                                                              1. 2

                                                                                                lobste.rs has moderated invites, to me this implies that we don’t need internal moderation except for spam, etc.

                                                                                              2. 3

                                                                                                The USENET group alt.hackers is unique in that it’s a moderated group, but with no moderator, which was the whole point. It was a fun exercise in learning how to post there, and the signal-to-noise ratio was quite good for a moderatorless moderated group.

                                                                                                1. 2

                                                                                                  If you don’t like moderators, usenet is still up. Godspeed.

                                                                                                  Okay. That made me laugh.

                                                                                                  But fwiw, I don’t agree with aggressive moderation. If we some how reach reddit-level brigading and shit posting then it might be appropriate.

                                                                                                  1. 3

                                                                                                    It might have been funny, but more importantly it was mean. I consider it a mistake. It deserved every downvote and I’m only not deleting it because it’s better off visible as the part of an important meta conversation.

                                                                                              1. 4

                                                                                                I’m on the beta now and it is much faster. Unfortunately, my laptop’s fans are spinning at full speed.

                                                                                                1. 1

                                                                                                  i’ve noticed that some webapps (like telegram) tend to do that if they run long enough, after closing the tabs cpu usage goes back to normal.

                                                                                                1. 1

                                                                                                  thanks for the notice!

                                                                                                  1. 37

                                                                                                    The “downsides” list is missing a bunch. I mean, I use Makefiles too, probably too much, but they do have some serious downsides, e.g.

                                                                                                    • The commands are interpreted first by make, then by $(SHELL), giving some awful escaping at times
                                                                                                    • If you need to do things differently on different platforms, or package things for distros, you pretty quickly have to learn autoconf or even automake, which adds greatly to the complexity (or reinvent the wheel and hope you didn’t forget some edge-case with DESTDIR installs or whatever that endless generated configure script is for)
                                                                                                    • The only way to safely (e.g. parallelizable) do multiple outputs is by using the GNU pattern match extension, which is extremely limited (rules with multiple inputs to multiple outputs is hard to write without lots of redundancy)
                                                                                                    • GNU make 4 has different features from macos (pre-GPL3) make 3.8 has different features from the various BSD makes
                                                                                                    • You really have to understand how make works to avoid doing things like possibly_failing_command | sed s/i/n/g > $@ (which will create $@ and trick make into thinking the rule succeeded because sed exited with 0 even though the first command failed). And do all your devs know how to have multiple goals that each depend on a temp dir existing, without breaking -j?

                                                                                                    and there’s probably lots more. OTOH, make been very useful to me over the years, I know its quirks, and it’s available on all kinds of systems, so it’s typically the first thing I reach for even though I’d love to have something that solves the above problems as well.

                                                                                                    1. 14

                                                                                                      Your additional downsides makes it sound like maybe the world needs a modern make. Not a smarter build tool, but one with less 40-year-old-Unix design sensibilities: a nicer, more robust language; a (small!) handful of missing features; and possibly a library of common functionality to limit misimplementations and cut down on the degree to which every nontrivial build is a custom piece of software itself.

                                                                                                      1. 7

                                                                                                        mk?

                                                                                                        1. 3

                                                                                                          i’ve also thought of that! for reference: https://9fans.github.io/plan9port/man/man1/mk.html

                                                                                                        2. 10

                                                                                                          I think the same approach as Oil vs. bash is necessary: writing something highly compatible with Make, separating the good parts and bad parts, and fixing the bad parts.

                                                                                                          Most of the “make replacements” I’ve seen make the same mistake: they are better than Make with respect to the author’s “pet peeve”, but worse in all other dimensions. So “real” projects that use GNU Make like the Linux kernel and Debian, Android, etc. can’t migrate to them.

                                                                                                          To really rid ourselves of Make, you have to implement the whole thing and completely subsume it. [1]

                                                                                                          I wrote about Make’s overlap with shell here [2] and some general observations here [3], echoing the grandparent comment – in particular how badly Make’s syntax collides with shell.

                                                                                                          I would like for an expert in GNU Make to help me tackle that problem in Oil. Probably the first thing to do would be to test if real Makefiles like the ones in the Linux kernel can be statically parsed. The answer for shell is YES – real programs can be statically parsed, even though shell does dynamic parsing. But Make does more dynamic parsing than shell.

                                                                                                          If there is a reasonable subset of Make that can be statically parsed, then it can be converted to a nicer language. In particular, you already have the well-tested sh parser in OSH, and parsing Make’s syntax 10x easier that. It’s basically the target line, indentation, and $() substitution. And then some top level constructs like define, if, include, etc.

                                                                                                          One way to start would be with the “parser” in pymake [4]. I hacked on this project a little. There are some good things about it and some bad, but it could be a good place to start. I solved the problem of the Python dependency by bundling the Python interpreter. Although I haven’t solved the problem of speed, there is a plan for that. The idea of writing it in a high-level language is to actually figure out what the language is!

                                                                                                          The equivalent of “spec tests” for Make would be a great help.

                                                                                                          [1] https://lobste.rs/s/ofu5yh/dawn_new_command_line_interface#c_d0wjtb

                                                                                                          [2] http://www.oilshell.org/blog/2016/11/14.html

                                                                                                          [3] http://www.oilshell.org/blog/2017/05/31.html

                                                                                                          [4] https://github.com/mozilla/pymake

                                                                                                          1. 6

                                                                                                            Several more modern make style tools exists - e.g. ninja, tu and redo.

                                                                                                            1. 2

                                                                                                              We need a modern make, not make-style tools. It needs to be mostly compatible so that someone familiar with make can use “modern make” without learning another tool.

                                                                                                              1. 8

                                                                                                                I think anything compatible enough with make to not require learning the new tool would find it very hard to avoid recreating the same problems.

                                                                                                            2. 2

                                                                                                              The world does, but

                                                                                                              s/standards/modern make replacements/g

                                                                                                            3. 5

                                                                                                              Do most of these downsides also apply to the alternatives?

                                                                                                              The cross platform support of grunt and gulp can be quite variable. Grunt and gulp and whatnot have different features. The make world is kinda fragmented, but the “not make” world is pretty fragmented, too.

                                                                                                              My personal experience with javascript ecosystem is nil, but during my foray into ruby I found tons of rakefiles that managed to be linux specific, or Mac specific, or whatever, but definitely not universal.

                                                                                                              1. 5

                                                                                                                I recommend looking at BSD make as its own tool, rather than ‘like gmake but missing this one feature I really wanted’. It does a lot of things people want without an extra layer of confusion (automake).

                                                                                                                Typical bmake-only makefiles rarely include shell script fragments piping output around, instead they will use ${VAR:S/old/new} or match contents with ${VAR:Mmything*}. you can use ‘empty’ (string) or (file) ‘exists’.

                                                                                                                Deduplication is good and good mk fragments exist. here’s an example done with bsd.prog.mk. this one’s from pkgsrc, which is a package manager written primarily in bmake.

                                                                                                                1. 2

                                                                                                                  Hey! Original author here :). Thanks a bunch for this feedback. I’m pretty much a Make noob still, so getting this type of feedback from folks with more experience is awesome to have!

                                                                                                                  1. 2

                                                                                                                    You really have to understand how make works to avoid doing things like possibly_failing_command | sed s/i/n/g > $@ (which will create $@ and trick make into thinking the rule succeeded because sed exited with 0 even though the first command failed).

                                                                                                                    Two things you need to add to your Makefile to remedy this situation:

                                                                                                                    1. SHELL := bash -o pipefail. Otherwise, the exit status of a shell pipeline is the exit status of the last element of the pipeline, not the exit status of the first element that failed. ksh would work here too, but the default shell for make, /bin/sh, won’t cut it – it lacks pipefail.
                                                                                                                    2. .DELETE_ON_ERROR:. This is a GNU Make extension that causes failed targets to be deleted. I agree with @andyc that this behavior should be the default. It’s surprising that it isn’t.

                                                                                                                    Finally, for total safety you’d want make to write to .$@.$randomness.tmp and use an atomic rename if the rule succeeded, but afaik there’s no support in make for that.

                                                                                                                    So yes, “you really have to understand how make works [to avoid very problematic behavior]” is an accurate assessment of the state of the things.

                                                                                                                    1. 1

                                                                                                                      Your temp directories dependency problem makes me think a GUI to create and drag drop your rules around could be useful. It could have “branching” and “merging” steps that indicate parallelism and joining too.

                                                                                                                    1. 2

                                                                                                                      For those using Go, have no fear! There’s an implementation of yacc, goyacc, that is as horribly undocumented as traditional C versions. That being said, the documentation you find for C should match fairly closely for goyacc, and I’ve used it successfully a few times, including just last night.

                                                                                                                      I don’t know of a lex equivalent, though.

                                                                                                                      1. 2

                                                                                                                        nice approach to lexing in go: Lexical Scanning in Go

                                                                                                                        1. 1

                                                                                                                          Does that work well with goyacc? I guess since goyacc just requires conforming to an interface it shouldn’t be a big deal. I just tend to write state machines and copypasta it and adapt to new use cases. Would really like to see a more traditional lex like generator though. Maybe one day I’ll get inspired…

                                                                                                                          1. 1

                                                                                                                            it has been a while since i’ve used it, but this function is more or less what goyacc uses, if i remember right: https://talks.golang.org/2011/lex.slide#42

                                                                                                                            there are ragel to go tools out there, and http://crypto.stanford.edu/~blynn/nex/ is more like lex.

                                                                                                                            1. 2

                                                                                                                              A long time ago I wrote golex, a lexer generator designed to almost be identical in input format to flex. I’ve reuploaded it below; despite the last substantive change being made in 2012, it still compiles and runs fine!

                                                                                                                              https://github.com/kivikakk/golex

                                                                                                                              1. 1

                                                                                                                                nice, i’ll check it out the next time i need lexing :)

                                                                                                                                1. 1

                                                                                                                                  Very nice! It doesn’t look like it has out of the box compatibility with goyacc, nor is it reentrant, is that accurate?

                                                                                                                                  1. 1

                                                                                                                                    Good questions! I don’t know if I’ve tested it with goyacc, but integrating it shouldn’t be any harder than integrating flex/bison. It’s unlikely to be reentrant as is, though it’s a pretty simple change.

                                                                                                                        1. 1

                                                                                                                          i guess this is my favourite part of this list:

                                                                                                                          Thanks ? You can support what I do on Patreon or look into other repositories I shared. Thank you. ?