1. 4

    If adopted, I suggest a different name. textprocessing makes me think of regexps, parsing, full-text search, stuff like that.

    Maybe document-processing ?

    1. 1

      I’d say that’s the more accurate description and a good middle ground between textprocessing and typesetting. One does wonder if documentation/man pages still count as documents in that sense, but I’d say it’s clear enough. Though, as far as I know, tags cannot have hyphens/dashes, so it’d have to be documentprocessing.

    1. 2

      Why do they even still have backups from 2007 in this post-GDPR world? They have no authority to retain that data, surely.

      1. 3

        I was thinking exactly this when I read about the breach. Backups from 2017 maybe, but almost ten year old backups are useless right?

        1. 4

          Maybe it was a seed for a staging/testing system? It’s not uncommon for many places to flop around a data seed for developers - usually they would be anonymized but that’s not always the case in all places.

          1. 3

            It’s not too surprising to me. When changing over to a new system, it’s fairly common to dump the old pile of spaghetti into an archive labeled Someone Sort This Mess Out Later, if you aren’t 100% sure that it doesn’t still have something important in it that needs to be ported over to the new system. Naturally, nobody ever gets around to sorting through it.

        1. 8

          Still looking for a job. If anyone has any need of a Ruby or Python developer from now until October, especially in the Berlin area (remote also works), please let me know. Brief summaryfull CV/resume

          Besides that I’m making the final arrangements for a group I’ve organized to walk in Berlin’s LGBT Pride parade on Saturday.

          1. 1

            job

            If you’re ok with doing fairly non-exciting work with an ERP system in Python then write me at svenstaro@gmail.com.

          1. 11

            Not only is Chromium itself hard to contribute to, Google has an effective stranglehold on the Web standards process.

            1. 9

              I did not write a single line of code for money all year. It was a good year.

              1. 1

                What did you do instead? Management, consulting, bartending?

              1. 1

                with the exception of the zero-width assertions, with only these features it’s possible to match any POSIX regular expression…

                I’m skeptical that zero-width assertions are an exception. What’s an example of a backreference-free POSIX regexp that does not specify a regular language?

                1. 1

                  POSIX REs per se don’t have backreferences. The point I’m making in that sentence is that POSIX has zero-width assertions (as a feature, they are compatible with regular grammars) but since the toy regexp engine doesn’t have them, any POSIX regexp that depends on them is not replicable with it.

                  1. 1

                    POSIX REs per se don’t have backreferences

                    Do you have a citation?

                    According to http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html :

                    9.5.2 RE and Bracket Expression Grammar

                    This section presents the grammar for basic regular expressions, including the bracket expression grammar that is common to both BREs and EREs. … %token BACKREF L_ANCHOR R_ANCHOR

                    That, as well as other parts of the doc, seem to indicate that back references are part of POSIX regexps.

                    1. 1

                      Sorry, I meant POSIX extended REs. Only basic REs have backreferences. I’ll clear that up when I update the article.

                      (Why does ‘extended’ mean ‘has fewer features’? That’s committee-think for you.)

                    2. 1

                      any POSIX regexp that depends on [zero-width assertions] is not replicable with [a regexp engine that lacks them].

                      I believe this is false. Again, why do you think it isn’t “possible” to transform regexps with zero-width assertions into equivalent regexp without them? Note that your original sentence even specifies, “after applying the appropriate transformation.”

                      1. 1

                        Can you explain a method to transform arbitrary uses of zero-width assertions (^, $, and \b) into arbitrary regexps without them?

                        1. 1

                          A straightforward but inefficient method is to convert the source regexp to a DFA, then convert the DFA back to a regexp that uses only union, concatenation, and star.

                  1. 4

                    The current generation of standards makers and browser vendors, especially Google, do not care about forward or backward compatibility. Look what happened to <ISINDEX> support, for example. Still can’t use my favourite Latin–English dictionary website from the 1990s because that has now been removed from the spec and all browsers (on Google’s initiative).

                    If you thought Google might be better than Microsoft as a >50% browser market share holder, changes like this should give you pause. If you use Chrome, consider switching to Firefox or Safari.

                    1. 4

                      To ‘incorrect’ I add straw men, cases where (deliberately or not, it’s hard to tell and is immaterial) a respondent incorrectly represents the argument made by a previous commenter or by the linked article.

                      ‘Troll’ feels too harsh for this since it could be a genuine misunderstanding of the original author’s position due to a misreading (or whatever), and the word troll implies a deliberacy that may not be present.

                      1. 4

                        If someone is making a straw man argument, mark as incorrect, but also please explain to others why it is a straw man.

                      1. 3

                        The Parliament is asking the Commission …

                        I wonder what Europe looks like in a universe where this sentence reads: “The Parliament is telling the Commission…”

                        1. 2

                          Better, probably. Brexit probably wouldn’t be happening, for one. But fortunately the commission seems to be accepting that, de facto, it should do whatever the parliament says.

                          1. 0

                            The public impression of the Commission probably didn’t help for Brexit, but the UK government has also generally been against giving the EU Parliament more power, not wanting a EU-wide legislature that functions as a regular legislature (with power to initiate and pass laws, etc.), as that could be seen as a step towards a “United States of Europe”.

                        1. 26

                          “a (male) engineer from another team completely rewrote the blog post and published it without talking to me.”

                          This author is obsessed with gender in cases where it makes no difference, It reeks of confirmation bias.

                          1. 36

                            In the context of a feature designed to combat online harassment, a problem overwhelmingly experienced by more by women, it seems reasonable to mention that her own post was swapped out for one written by someone with presumably no personal experience of the problems this feature was designed to address.

                            1. 10

                              written by someone with presumably no personal experience of the problems this feature was designed to address.

                              But it seems like everyone else at the company wanted to keep the feature log about features, not personal stories regarding the origins of those features. From the article:

                              It was decided that the tone of what I had written was too personal and didn’t reflect the voice of the company. The reviewer insisted that any mention of the abuse vector that this feature was closing be removed.

                              I don’t see what would be so bad about writing objectively about the feature itself on GitHub and then posting about the personal experience somewhere else. There are a bajillion other things that this abuse vector could’ve been used for, so implying that it’s inextricably linked to this specific event when writing for the company’s official feature log is bound to generate some controversy.

                              1. 15

                                out for one written by someone with presumably no personal experience

                                So you are presuming he has no personal experience because he’s a male?

                                Meanwhile presuming you are incapable of whatever because you are women/trans/not-white-or-asian = an unforgivable sin?

                                How do you reconcile this cognitive dissonance?

                                1. 13

                                  “presumably no personal experience” - how would you, she or anyone know? We can all presume whatever we want. It might be someone who was bullied his entire life, or we can presume writing a long post gives you credibility over anonymous evil editors.

                                2. 19

                                  Her interview process involved marginalized people (“I was impressed … by the fact that the majority of people that I met with were women”), her team was largely comprised of marginalized people (“My team was 5 women and one man: two of us trans, three women of color”), and her team’s mission included “making GitHub more safe for marginalized people”. It is relevant, in that context, that the person who rewrote her post was 1- outside of her team, and 2- not part of a marginalized group.

                                  1. 15

                                    I’m not sure it is. We might be seeing a double standard in how such data is used as evidence here. In many stories, people point out that young, white males particularly are taking action in companies or running them since Silicon Valley is biased toward hiring them. The non-marginalized crowd is the default that reinforces itself. Then, you say a critic of this team was “non-marginalized.” The obvious explanation is that anyone who critiqued her was with high-probability going to be a non-marginalized group if they’re such a huge majority as people like her always point out. This time, though, it’s significant that one person in Silicon Valley who is non-marginalized took action against another person. Because politics.

                                    I dismiss it based on double standard and my other post pointing out she’s an aggressive politician doing her thing in that company which person doing rewrite might have reacted to. That’s one reason to doubt it matters. If it does, another to think it was a reflexive reaction against a political extremist. Personally, I have no idea what their motivation was as I have limited data that looks bad on both sides (status quo and activist aiming to fix).

                                    1. 5

                                      Being a particular race or gender is not a qualification of competence or non-bias.

                                      1. 13

                                        I don’t think I implied it was. I think I stated that reporting the gender of the engineer who rewrote her post was relevant, given the context of the job she was being asked to do.

                                        I’ll add, though, that rewriting somebody’s content without discussing it with the original author (and then publishing it under the original author’s name) does say something about their competence.

                                        1. 6

                                          I’ll definitely agree with your point about rewriting.

                                          1. 3

                                            I’ll add, though, that rewriting somebody’s content without discussing it with the original author (and then publishing it under the original author’s name) does say something about their competence.

                                            That’s true. One could test both competence and bias by seeing how often that happens in the organization. I’d probably make a rule to ban it entirely far as leaving it under their name. Just say it was deleted.

                                            1. 2

                                              I’ll add, though, that rewriting somebody’s content without discussing it with the original author (and then publishing it under the original author’s name) does say something about their competence.

                                              But that’s judging based on a soundbyte. From my perspective, it seems like the kind of thing that could’ve simply been caused by a miscommunication or lack of understanding—not necessarily an act that showed intent to undercut anyone else’s voice.

                                        2. 6

                                          How about this: since the gender is given parenthetically (thus indicating it is additional or non-essential information), and the author is a transgender woman, meaning she has had lots of experience being treated both as a man and as a woman and how it changes, maybe we can give her the benefit of the doubt and just consider the possibility that. as we learn more about the situation.

                                        1. 8

                                          As a long time open source person, I’m increasingly frustrated by the partisan refrain that software which isn’t open source cannot be trusted to be non-malicious. This isn’t really true, there’s an entirely domain of expertise dedicated to reverse engineering what no-source-available code does, and folks who do this for a living are really good.

                                          There’s plenty of good reasons to prefer open source, even related to trustworthiness, source availability facilitates easier reviews from people with different expertises (e.g. a cryptographer who is not an expert reverser), however the idea that closed source is just a total black box is a political argument, not a technical one.

                                          1. 10

                                            there’s an entirely domain of expertise dedicated to reverse engineering what no-source-available code does

                                            OK, but the cost of determining whether something is malicious is incredibly high for closed-source software compared to open source. Prohibitively so, for the vast majority of users.

                                            Any technique you can use to audit closed source software, you can use to audit open source software, right? But you also have the source code, the commit history including who committed what, diffs between versions, code comments, etc.

                                            Plus there’s the social factor. If somebody at Microsoft adds a backdoor to Windows, outsiders might notice the unusual network traffic, but they have no chance to see the code. All the committers to Windows are under NDA and can be pressured to be quiet. Whereas adding a backdoor to Linux would mean sneaking it past a bunch of people whose only unifying motive is to produce a good OS, and keeping them all from noticing it indefinitely. It’s a much harder task.

                                            So open source makes it much harder to add back doors and much easier to find them. It’s not perfectly safe, but it sounds a heck of a lot safer.

                                            1. 8

                                              You are technically right in saying that there are domains of expertise dedicated to reverse engineering closed source, and these folk tend to be really good.

                                              Making this the argument towards trusting closed source is moot. There is plenty of closed source that isn’t actively reversed, and audited, which is used heavily. Tax software, Search engines, you name it …

                                              1. 3

                                                As Ken Thompson showed, this argument is also wrong in that even if you can see the source, the binary that’s actually running could have been diddled in some way. And it’s not even that hard to get backdoors into source without people noticing, as Heartbleed and the Underhanded C Contest and so on show.

                                                1. 3

                                                  Still, you can’t really reverse engineer something as huge as Windows.

                                                  EDIT: Even if you were able to reverse engineer it, you can’t really modify it, unless you break the EULA. Even then, it’s a play of cat and mouse - you hack Windows to change its behaviour and then Microsoft patches it, so you need to find another hack.

                                                  1. 5

                                                    Neither you can audit a huge open source project: the OpenSSL fiasco showed that “since it’s open, someone would have noticed” doesn’t work.

                                                    1. 6

                                                      Still, being open source, it allows anyone to fork it (see LibreSSL) and use it instead.

                                                  2. 1

                                                    I suggest mentioning 3rd party evaluations instead of RE. People or organizations you trust get the source, vet it, and sign its hash. That was how security evaluations at government have been done since 90’s. It can be pretty cheap if software isnt humongous.

                                                    Interestingly, still necessary for FOSS since that gets so little review. Like in closed-source, most users just trust a 3rd party saying it’s good.

                                                    1. 0

                                                      This isn’t really true, there’s an entirely domain of expertise dedicated to reverse engineering what no-source-available code does, and folks who do this for a living are really good.

                                                      This is like saying terrorism is okay because there’s an entire domain of expertise dedicated to stop people from blowing up a schoolbus with a martyr vest and these experts (at least some of them) are quite good at it.

                                                      Open source and free software are superior to closed source proprietary software. All else being equal, there is no reason to use a closed software over an open one.

                                                      Just because you can mitigate the awfulness does not make something good.

                                                      1. 3

                                                        This is like saying terrorism is okay because there’s an entire domain of expertise dedicated to stop people from blowing up a schoolbus

                                                        That is ridiculous. The only point of terrorism is destruction to cause some reaction. Whereas, the point of proprietary software is to solve an actual or perceived problem for users in a way that works well enough. It usually does. Problems are usually recoverable. It almost never kills someone. Shady companies may optionally do a bunch of evil like lock-in on top of that. Don’t do business with shady companies & make sure you have an exit strategy if the supplier becomes one. Meanwhile, enjoy the software.

                                                        “Open source and free software are superior to closed source proprietary software.”

                                                        Like hell. You said all else being equal but it rarely is. In average case, it’s easily proven false in a lot of categories where at best open source has knockoffs of some proprietary app that suck in a lot of ways. In many other cases, there’s no open-source app available. Should be decided on a case by case basis which are better. Far as security, it was mostly proprietary in high-assurance sector steadily produced highly-robust solutions because they had money to put the necessary QA and security work into it. It’s basically unheard of in open-source unless paid pro’s or CompSci people are doing it with the open-sourcing being incidental. GEMSOS, VAX VMM, KeyKOS, Kesterel Institute’s stuff, OKL4, seL4, Caernarvon, MULTOS, CertiKOS, Eiffel SCOOP, SPARK Ada, CompCert, Astree Analyzer… all cathedral model by people who knew what they were doing being paid for it.

                                                        Closest thing in FOSS w/ communal development is OpenBSD with a mix of root-cause fixes and probabilistic mitigations whose effectiveness is unknown since top talent don’t focus on small, market share unless paid to. That vs competition using some of their methods plus formal proof, static analysis, exhaustive testing, covert-channel analysis, ensuring object code maintains source’s properties, SCM security, and 3rd-party pentesting. Open-source security is a joke on the high-end in comparison. Although NSA pentesting failed to break a few above, they certainly have many of those FOSS apps and FOSS-using services in the Snowden leaks with full “SIGINT-enabling.” They strongly encourage many of these FOSS apps to be used while making it illegal for companies to sell me Type 1-certified crypto or TEMPEST-certified devices. Kind of weird if FOSS quality is so good. ;)

                                                        Enough myths. Neither side is better by default. What matters are benefits for user at what cost. Sometimes it’s proprietary, sometimes not. Look for FOSS by default for many, good reasons. It’s not always the best, though. Just ask any hardware developer if we high-assurance people seem too fringe. Ask the hardware people to tell you which FOSS software is good enough to produce the chip you wrote that comment on. Which is “superior to closed-source proprietary software.”

                                                    1. 1

                                                      I’m fortunate enough to have had this realization (and others that have left me disillusioned with technology) at a young enough age that I’m switching careers, starting with enroling for a humanities degree. Others may not have that option.

                                                      1. 3

                                                        I don’t buy the inference they make from their experiment results. Language is of course always learned, and it’s equally observed that children build up from simple to advanced grammatical constructs over time, and tend to follow broadly similar patterns in terms of which aspects they learn in what order. That has been known for decades, if not centuries. If there is an innate language module in the brain, it could show the exact same patterns during language acquisition as observed here.

                                                        1. 9

                                                          You say that XML should only be used for documents, but with the exception of HTML it is primarily used as a data serialization format. Therefore it is useful to compare XML with other data serialization formats.

                                                          I don’t think Erik Naggum’s quote is very insightful. The attributes have some meaning to the computer, and that meaning can be conveyed equally as well in JSON. XML doesn’t attach any sort of special semantics to attributes so there is no point in even making the “real meat” distinction in the first place, it’s a flimsy argument based on assigning overdue importance to syntactical details. If XML had some sort of guarantee that some invariant was preserved under stripping attributes then maybe, but I have no idea what that would look like, and I’m not sure it would be useful.

                                                          The only sense I can think of that a “document” is different than other forms of data serialization is that sometimes documents are human readable/writeable. In that case I think XML doesn’t compare favorably to Markdown, reST, TeX, etc.

                                                          1. 8

                                                            You say that XML should only be used for documents, but with the exception of HTML it is primarily used as a data serialization format.

                                                            Far from it. TEI is used throughout the digital humanities to store all sorts of texts — language corpora, transcriptions of old printed books and manuscripts, reference works, speech transcription, etc. And there’s also DocBook, xml2rfc, MathML, DITA, alongside word-processing formats like OOXML, OpenDocument, and IDML which save rich text to XML.

                                                            (Also, HTML itself is not an XML application, though there continues to be an XML serialization defined which hardly anyone uses.)

                                                            I don’t understand your second paragraph at all, I’m afraid. Naggum’s argument is that information like, say, a coded identifier for a particular section of a document (like HTML’s id attribute), the destination of a hyperlink (a@href, img@src), and other purely ‘internal’ info which is of interest only to the programmer processing the document and perhaps also the person authoring it, but not in its raw form to readers, is suitable for use in attributes. He doesn’t say that they’re meaningless, more that they’re only of ‘behind-the-scenes’ meaning which generally produces or enables some other behaviour which is meaningful to actual document readers.

                                                            The only sense I can think of that a “document” is different than other forms of data serialization is that sometimes documents are human readable/writeable. In that case I think XML doesn’t compare favorably to Markdown, reST, TeX, etc.

                                                            Indeed in many cases it does not — see my point on how I wish SGML had survived. Markdown and reST however are not good for highly structured documents with more than the mere ‘generic’ document semantics HTML provides, and TeX can really only be processed by TeX. (Because of that, DSSSL could process SGML into TeX like XSLT can process XML into HTML.)

                                                            1. 3

                                                              Markdown and reST however are not good for highly structured documents

                                                              You can see this by the mess of syntax they turn into when people try to extend them to handle the features they don’t originally support. The only two “new-generation” markup languages I can think of that have a reasonably complete range of document-markup features are Pandoc’s much-extended version of markdown, and the org-mode file format. And those have such an array of special-case syntax and magic sigils that they start to look like the ‘90s version of Perl. Now, org-mode is at least rarely read or written directly; it’s written through a special emacs mode that does most of the markup bookkeeping and hides it by default. But if you’re willing to build a special editor to read/write the document, XML is fine as a document format too, and a more stable format to store and parse (basically nothing can correctly parse the full range of Pandoc markdown except Pandoc, and likewise for parsing org-mode with anything other than org-mode).

                                                              1. 3

                                                                Your counterpoint was like the smallest conceivable example. “Digital humanities” is such a microscopic sliver of the usage of XML, keep in mind that AJAX, originally meant Asynchronous Javascript and XML. When someone says primarily, they don’t mean exclusively, they mean primarily.

                                                                1. 2

                                                                  I’m not sure I buy Naggum’s argument in any case. If a person is reading the raw XML then they can see the attributes just as well as they can see the tag data, so it doesn’t matter if something is in an attribute or a tag. On the other hand, if they’re reading the document after it’s been processed into another format, then it doesn’t really matter if the processor got the data from an attribute or a tag element.

                                                                  On top of that, there are thousands of formats where XML is used for things that aren’t documents, and in those cases the decision between using an attribute or using a tag pair is arbitrary. Take the popular GPX format as an example. Latitude and longitude are stored as attributes in the “trkpt” tag, while elevation and time are stored in “ele” and “time” tags inside of each “trkpt”.

                                                                  1. 1

                                                                    (Also, HTML itself is not an XML application, though there continues to be an XML serialization defined which hardly anyone uses.)

                                                                    HTML5’s greatest mistake was not being XHTML. It’d make parsing much easier.

                                                                    1. 3

                                                                      More of HTML’s parsing hairiness came from the necessity to pick between implementing one of multiple different competing underdocumented parsing algorithms for it, than from the fact that the grammar itself is complicated. The fact that HTML5 specifies the parsing algorithm completely and unambiguously, including what to do on malformed input reduces the net difficulty of parsing, far more than the fact that the HTML5 parsing algorithm is big and complicated increases it.

                                                                1. 17

                                                                  Should also understand the backstory to this email.

                                                                  1. 13

                                                                    You can balance your additions by dropping the explicit html, head, and body tags. They’re not required, even for spec-valid HTML, as the parser adds the elements automatically.

                                                                    1. 4

                                                                      From what I found it is best not to omit charset declaration. Additionally we could get rid of few quotes. Then it could look like this (this validates with W3C validator):

                                                                      <!DOCTYPE html>
                                                                      <meta name=viewport content="width=device-width,initial-scale=1">
                                                                      <meta charset=utf-8>
                                                                      <style type=text/css>body { max-width: 800px; margin: auto; }</style>
                                                                      <title>Mark's Internet Presence</title>
                                                                      <h1>Mark's Internet Presence</h1>
                                                                      <p>
                                                                      At Mark's Internet Presence, we leverage HTML5 technologies to...
                                                                      <p>
                                                                      Next paragraph.
                                                                      

                                                                      title could be the first element after DOCTYPE, but for me it looks good just before h1 element.

                                                                      There could be <html lang=en> (without closing tag) added at front.

                                                                      I like it! For some time I plan to do a rehash of my website and was thinking about writing html directly as it does not need any processing. I was also toying with use of a very simple SSG. It generates fully static pages, but with a bit more pleasant CSS (although certainly longer).

                                                                      In a way writing fully static page directly reminds me of printing. Just as an old book or newspaper issue will look the same as it was when it was printed. Every article can have it’s own character and that is nice.

                                                                      1. 3

                                                                        title could be the first element after DOCTYPE, but for me it looks good just before h1 element.

                                                                        You always want to put the title after the charset declaration, or else you won’t be able to use special characters in your title ;)

                                                                        1. 2

                                                                          That is false. Once the charset is sniffed from the document itself, the entire page up to that point is re-parsed with the new charset.

                                                                          1. 7

                                                                            As a nitpick, the browser only has to reparse if it finds the charset early in the document, specifically:

                                                                            The element containing the character encoding declaration must be serialized completely within the first 1024 bytes of the document.

                                                                            Seems to occasionally come up in the wild, with people on StackOverflow confused about why their charset declaration isn’t working, who turned out to have had >1024 bytes of stuff before it (e.g. a big HTML comment at the top).

                                                                      2. 2

                                                                        Wow, apparently that’s been valid for a long time, but this is the first I’m hearing of it. Intriguing. Looks like the only case the explicit tags are really required is if you want certain elements (like a script) to be the first tag in the body, while they’d be put as the last tag in the head if you leave it implicit. But for everything else it’s unambiguous.

                                                                        1. 5

                                                                          It has been valid since before “valid HTML” was a thing — SGML allowed you (as a schema author) to specify arbitrary tags as optional so long as they could be inferred unambiguously.

                                                                          Some day we will catch up to the markup technology of the 1980s.

                                                                      1. 1

                                                                        It’s strange that the article doesn’t mention that Bernstein himself has a replacement for su to solve this exact issue.

                                                                        1. 5

                                                                          I don’t think daemontoolssetuidgid was intended as a replacement for su. It isn’t even installed with the setuid bit set. So you can’t use it to gain privileges, only to drop them. In contrast, su is intended to gain, but not drop privileges and accordingly is installed with the setuid bit set. The author of nosh (belonging to the daemontools family) goes into detail about this: Don’t abuse su for dropping user privileges

                                                                        1. 1

                                                                          What does Erlang do about this internally? It must surely use getenv/setenv somewhere in library code.

                                                                          1. 2

                                                                            I could very easily see Erlang simply having one process who’s job it is to manage access to getenv and setenv. I suspect they actually use some kind of locking scheme, but I don’t know enough BEAM to be certain.

                                                                            1. 1

                                                                              Does anyone know a good way to navigate the Erlang source code? I’m a little spoiled by all the code navigation support that golang.org has, and wonder if Erlang has anything similar

                                                                              1. 1

                                                                                The same question for Go. I use setenv() a lot in test code to do various things and have never encountered this behavior. I’m not interacting, though, with a library that uses libc when doing so, at least not in cases I can think of. Curious enough to look into this later.

                                                                                1. 1

                                                                                  Also interesting is that environment variables are passed directly to calls to Exec. Does Exec in libc also take an env parameter?

                                                                                  1. 2

                                                                                    man 2 execve

                                                                                  2. 1

                                                                                    So, at least in Go, the first call to os.Getenv, or os.Setenv copies the environment into a map. For os.Setenv, there’s an additional call to setenv_c, which I didn’t successfully fund the definition of (just on my phone). Also, it appears that a setenv in another (external) library won’t actually show up in a subsequent os.Getenv call, if the environment was already copied.

                                                                                    1. 1

                                                                                      Setenv in golang uses a Read-Write mutex, which is how a lot of other racy go constructs (like their regular expressions) add thread safety. (Which is why I think Erlang does something similar). Interestingly enough, golang has its wrapper around setenv/getenv in it’s syscall package.

                                                                                      https://golang.org/src/syscall/env_unix.go?s=1927:1963#L83

                                                                                      1. 2

                                                                                        I noticed that before, but missed this:

                                                                                        // setenv_c and unsetenv_c are provided by the runtime but are no-ops
                                                                                        // if cgo isn't loaded.
                                                                                        func setenv_c(k, v string)
                                                                                        func unsetenv_c(k string)
                                                                                        

                                                                                        So, they basically copy the environment on first interaction with it, use a Lock, and don’t try to do anything fancy unless you’re using cgo. With cgo, I bet you end up with the same problems as described in the blog post… something to test out in my “copious” amounts of free time.

                                                                                  1. 10

                                                                                    Great read! EGCs sound like a very useful concept, never heard of them before. Impressive to see that one language’s stdlib gets the abstraction right, but I wonder if the EGC is always unambiguous between languages that share a script.

                                                                                    1. 5

                                                                                      And the answer seems to be “yeah, no, it’s complicated”.

                                                                                      https://www.reddit.com/r/rust/comments/5o13kk/comment/dcg1ul9

                                                                                      1. 3

                                                                                        Yes, it’s always unambiguous; EGC is defined independently of any particular locale.

                                                                                      1. 6

                                                                                        Two solutions: (a) ban bad jokes, opinions provided without academic-grade references, and specific versions of trolling on this forum; (b) encourage the opposite while using voting and moderation to keep the bad stuff at a minimum. They’ve been doing (b). Despite claims like yours, I fine (b) is working well enough that I can apply tactic © ignore the fluff that remains. I mean, it’s almost no mental effort on this forum.

                                                                                        Expecting some policy or technology to eliminate all that you perceive as bad from your view while simultaneously brining in all or most of the good you would want to see is… like the social equivalent of the Halting Problem. It’s impossible. So, we can only reduce and ignore for stuff we don’t like.

                                                                                        1. 8

                                                                                          I don’t think ‘academic-grade’ references are needed. Some viewpoints are uncontroversial; others are just people’s own impressions of how things are, and ripe to be challenged, and lobste.rs should be a forum for that too. I guess the most troublesome is the blanket dismissal of something. Negativity in general is far more of a problem than positivity — relatively content-free ‘This is great!’ posts help to re-inforce the reason for an upvote, but a similarly ungrounded ‘I hate this/you!’ is obviously a bad comment.

                                                                                          1. 5

                                                                                            Expecting some policy or technology to eliminate all that you perceive as bad

                                                                                            Honest question: do you think the OP is asking for this? If not, why are you using it to dismiss the OP’s concerns?

                                                                                            If the OP is in fact demanding perfection, then sure, I would agree that is unreasonable. But I don’t think anyone has that expectation.

                                                                                            I absolutely agree with the OP that comment quality has degraded in the last several months. There’s a much higher concentration of what I like to call “content free” comments.

                                                                                            I also disagree with your dichotomy. A comment doesn’t need academic citations to be insightful. A comment doesn’t even need to be correct. It can just be an opinion. My point of comparison is my experience being a member here for a couple years now. Another thing that has changed is the volume of comments. Perhaps that is related.

                                                                                            1. 1

                                                                                              I may have overstated the dichotomy in a quick comment. The follow-up of the OP added specific stuff that’s reasonable. Yet, if you read all the gripes in various metas, you get to many people having such reasonable criticisms plus wanting it to focus on commenting styles/topics they prefer. The latter lead to the dichotomy since some here apparently have irreconciliable differences on what they want to be present at all. The use of filters shows that even more albeit being much better approach to problem.

                                                                                              Like in my original comment, the solution would require listing these specific behaviors, discussing them, determining if a large consensus exists against any, and then officially banning them with flags following when they turn up.

                                                                                              Or just scroll past them barely noticing like I do. Look, quick assessment, worthless, and move on. If in thread, skip whole thread maybe. Another benefit of beginning online discussions in the dark ages of the Internet where good comments came in between volumes of IRC comments and web sites. :)

                                                                                              1. 7

                                                                                                Or just scroll past them barely noticing like I do. Look, quick assessment, worthless, and move on.

                                                                                                This strategy is heavily dependent on the signal to noise ratio. The promise of lobsters is its high quality content and discussion. If we’re okay to just “ignore” the bad comments, then what makes lobsters any different than HN or Reddit?

                                                                                                1. 6

                                                                                                  I don’t think Lobsters has better discussion than HN, at least if you stick to the upvoted comments. I only prefer this site because it has less pop-sci and startups posts.

                                                                                                  1. 2

                                                                                                    You just answered it yourself. The site’s approach is high signal so far. That makes noise easy to ignore. If it becomes a real problem, the site’s constraints on behavior can increase to reduce the problem.

                                                                                                    I read tons of comment sections and forums over the years although relatively new to this one. Comparatively, this one is doing great for a diverse, loosely-moderated group of people.

                                                                                                    1. 4

                                                                                                      The whole point of this thread is that some people think the signal is decreasing. Lobsters is getting more and more reddit-like comments. As someone who came here for a reprieve from that sort of nonsense, I am disappointed in the quality decrease.

                                                                                              2. 2

                                                                                                I think that something along the lines of (a) would be useful. Setting up some ground rules for comments. Something along the lines of backup your statements but no need to reference everything or making jokes is fine, but not posting a comment just to make one. However another key ingredient would be the enforcement of that policy, which takes time and effort from a moderating staff and also requires the implementing the code for a punishment system, which again takes effort from someone. It would be ineffective for the only sanction to be only banning the offender. It would be to harsh for a first of transgression people. Something more gradual is needed, like removing the post and posting privileges for a period of time, say a week. Because lobste.rs is run as a free (as in gratis) I don’t see that approach being taken.

                                                                                                The point should never be to remove ‘wrong’ views, but encourage a culture for effective discussions, regardless of the views of the participants.