1. 2

    Do you also code in Python? I tried out common lisp for a short while and then decided that Python gave me all this power and more without some of the strangeness. I did like that Common Lisp could be compiled (and that there is a decompiler right there in the REPL) but all in all, I came away underwhelmed. I supposed I had been set up for that by the mythology round CL.

    I’m going to follow your further journey with interest to see how you like it in comparison to a modern dynamic language, like Python or Ruby.

    1.  

      The mythology definitely has done Common Lisp (CL) no good, especially all the mindless advocacy of people on the orange website in the years past. Oftentimes I wondered if they even used CL or were just repeating what others said.

      That said, CL is still my favorite language because it makes most things so effortless. It doesn’t force one into a specific paradigm and one doesn’t have to remember all kinds of strange syntax rules (which can be a problem if you switch between different languages a lot).

      I’m curious what you meant with “strangeness” ?

      I do not feel Python or Ruby are more modern. They do have a more expansive community and libraries but what is more modern about them?

      1.  

        I forget the details, but one thing that stuck out was that there was all this todo about how code was data, and yet when you went to call a variable as a function you had to use funcall rather than just do it “normally”. I also found it hard to read: I had to rely on indentation, and then the parens got in the way.

        I can see how CL was spectacular in the 1970s. But today we have Python, which has a REPL, introspection, monkey patching, good debuggers and many, many libraries often high quality ones that people have “standardized” upon. I do miss some form of compilation, which is what, to me, was a good thing about CL, as well as the gradual typing you could do (I think).

      2.  

        The key differentiator for LISP/Scheme was that one can easily customize the language to make their problem easier to express. You break your problem downward into simpler sub-problems while using macros to bring the language upward toward easily expressing your solution. The ability to change how things work can save lines of code, make portability easier, make optimizations easier and so on. The language itself being so malleable means you don’t have to use external tooling like another language or redo your compiler/interpreter to achieve those gains.

        Python has quite a bit of power. It’s been a while since I used it. Can it currently define or redefine language features on a per-program basis using code not that different from regular Python?

        1.  

          Hi!

          Yes, so I bailed before I learned macros. Probably makes my opinions on CL invalid.

          I saw one or two examples of macros (DSLs). They were mind blowing, but also disturbing. The danger I saw was that I could make my code unreadable by other people, including my future self because of the freedom afforded.

          @aerique says “one doesn’t have to remember all kinds of strange syntax rules” but with macros now every one and their grandfather have their own syntax rules.

          I have some confidence going into a Python code base that I will understand the intent of the coder by following the code as it is written down.

          With CL macros I felt that I would be having to go much deeper into the writers mind to understand the code.

          As it is, I have issues with the amount of malleability I get from Python.

          1.  

            Good guess. That is a problem if macro use is undisciplined. What I recommend is using regular, boring primitives for most of the code with macros only where justified. From there, macros are much like libraries where you usually just need to know how to use them rather than their internals.

            If you ever want to try it, How to Design Programs with Racket Scheme is widely recommended to learn both Scheme and their programming approach. It’s free online.

      1. 4

        In principle open source software is the best because anyone can inspect the code and publicly warn everyone of bugs and vulnerabilities.

        In practice specialized code, like encryption, requires specialists to properly analyze it. These specialists may come from organizations - private or governmental - that have incentives to keep this analysis to themselves.

        I often think that the EFF and the ACLU should prioritize hiring of domain experts to vet particular, important code bases periodically.

        1. 6

          I pointed out the real basis for security in evaluating FOSS and proprietary software here. In comment, I also noted the only high-security systems ever designed were done by the cathedral model with most resisting NSA pentesters being proprietary. Amusingly, the write-up itself always has about 1-2 points max on any site. Even my high-assurance, backdoor concept got more sometimes. I’m sure there’s fascinating social/psychological effects going on there.

          1. 7

            Do not prematurely introduce dependencies.

            Worrying about performance is vastly overvalued. Good performance is a by-product of pursuing other goals, mainly simplicity.

            This is largely true, based on my experience. Good advice to follow.

            Do not use Markdown. [The essay referred to in the slides.]

            I think the author is a bit harsh on Markdown, especially if you read the linked essay. It was designed for writing for the web, and was meant to be converted to HTML only. The author criticizes it for lacking things it was never meant to have.

            But I do agree that it’s terrible for technical documentation and it’s a travesty that it’s become the norm in that respect. I recently switched to using Markdown for some internal documentation at work mostly because Bitbucket will render it and it (hopefully) encourages others on the team to write docs. When I’m writing with it, though, it’s a mess. No description lists, linking between things is ugly, and you have to manually make thing like a table of contents. I’d switch to mdoc but then I’m worried no one else will bother to writing anything. Maybe that will happen anyway with the cruddiness of Markdown, so perhaps it won’t matter.

            (Bonus: in the linked essay, I learned that GNU is apparently going to kill off info. No arguments here!)

            1. 4

              it’s a travesty that it’s become the norm in that respect

              I believe we mostly have GitHub becoming the norm to thank for that. Its native formatting for rich presentation is Markdown via the README.md. With GitHub being massively adopted and Markdown being the least path of resistance, it’s hardly surprising how this came to be. So that hampers mdoc adoption.

              Because everybody writes their documentation in README.md now (if at all), they also expect Markdown to man page converters. Those emit man(7) more or less by necessity. People unfamiliar with mandoc won’t care, but those that are may be annoyed by the semantic information that is lost. Not only because mandoc produces worse HTML output because of it, but also because mandoc’s semantic search won’t work for those man pages. However, the group that are unfamiliar with mandoc intersects more or less entirely with the group of people who writes Markdown exclusively. This further hampers mdoc adoption.

              We have a man page and documentation problem. And there doesn’t seem to be a way to help it.

              1. 13

                You’ve long been able to render AsciiDoc, org, rST, among other lightweight markup languages, to HTML with GitHub. For example:

                I dunno why Markdown “won”, but maybe it had something to do with:

                • (at one time) an informal spec, easy to implement (though, probably, with bugs) in a couple days
                • the use by Reddit for its comment system (compare w/ bbcode)
                • good marketing - gruber was already a known figure when he unleashed markdown, was able to publicize it with his widely-read personal blog
              2. 2

                (Bonus: in the linked essay, I learned that GNU is apparently going to kill off info. No arguments here!)

                Looks like that was from 2014 and I can’t tell if the proposed replacement is genuine or a very bad joke. Either way, it doesn’t feel like much has changed in 4 years unfortunately.

                1. 1

                  you have to manually make thing like a table of contents

                  This is a specific solution (VSCode specific), but I discovered markdown-toc recently and I like it. There are other tools that can be used to add a TOC to a markdown based on headings.

                  I actually find Markdown convenient for Readmes and user land documentation. Because I can get by with very little markup and the markup reads fine as text it encourages me to write.

                  I can totally see how it would be a pain for technical documentation for code bases, but I suspect you would use .rst and an assist from an automatic documentation generator for that.

                  1. 1

                    I am regretting the Markdown choice already and I’ll probably switch to something else that can export Markdown so it can be read directly while browsing the repo.

                    So yeah, whether that’s .rst or not remains to be seen, but the pattern is the same.

                1. 1

                  I like that and this one: http://permalink.lanl.gov/object/tr?what=info:lanl-repo/lareport/LA-UR-88-9068

                  I started an article last year that I have to finish linking together several related methods …

                  1. 3

                    I think the build mat should be next to the sources mat.

                    1. -1

                      From the article:

                      “There is more ship structure on the port side of the hull than on the starboard side,“ explains Hocker. “Unballasted, the ship would probably heel to port.“

                      No wonder the ship tipped to the port side when the winds hit. But why was the ship so lopsided? While examining the ship, Hocker discovered four rulers the workmen had used. Those rulers were based on different standards of measurement at the time. Two were in Swedish feet, which were divided into twelve inches. The other two were in Amsterdam feet, which had eleven inches in a foot. So each carpenter had used his own system of measurement.

                      “When somebody tells him, make that thing four inches thick, his four inches is not going to be the same as the next guy’s four inches,“ says Hocker. “And you can see those variations in the timbers, as well.“

                      But that wasn’t the only reason the ship sank. Hocker says the Vasa was also top-heavy. “The part of the ship that was above the water is too heavy compared to the part of the ship that’s in the water. [It] makes it too easy for it to heel over.“

                      People in the 17th century were aware of that fact, but they didn’t understand what made the ship top-heavy, or whom to blame for the poor design. Some historians and military architects have blamed the King.

                      They thought that he had interfered with the ship’s dimensions after the construction had begun. But Hocker’s measurements offered no evidence to support that theory. He uncovered a simpler cause.

                      “The deck structure is simply too heavy,“ he says. “It’s heavier than it needs to be to carry the guns that Vasa was armed with.“

                      Why were the decks so heavy? Hocker studied historical documents and found that the shipbuilder, a Dutch man named Henrik Hybertsson, had never built a ship with two gun decks or with so many guns. He thinks Hybertsson erred on the side of caution and made the decks heavier than they needed to be. In other words, as Hocker puts it, “the design was simply flawed from the beginning.”

                      1. 9

                        Normally, I’d say this is off-topic for lobste.rs but the writer IS pretty entertaining and I LOL-ed at

                        Sure, Google and Facebook and Apple do have to worry about this, because they’ve domiciled their foreign HQ’s in Ireland so that they can shelter all that foreign revenue from US taxation. Karma’s a bitch.

                        Also, way to go to break that stereotype about Canadians being polite doormats.

                        But for those of us here who are lawyers (or are close to the law, preferably not on the broke-the-law side) how accurate is this position?

                        The thing with collecting the taxes reminded me that Amazon now collects state taxes. I’m totally ok with this, but it is a state law Amazon is having to comply with, without which they would have to cease operations in that state. So I’m surprised that easyDNS can serve UK customers without collecting taxes - they must be violating UK law, right?

                        I also see, in principle, how this translates to having to start obeying contradictory laws. Say the Saudis say women can’t access the internet and all internet providers now have to track gender of the user. What happens to a US based company that is prohibited from denying services on the basis of gender. I guess they’ll have to create a new company in Saudi that’s a wholly owned subsidiary but is a Saudi company and so on and so forth.

                        Ah the joys of being one big happy planet.

                        1. 9

                          I guess they’ll have to create a new company in Saudi that’s a wholly owned subsidiary but is a Saudi company and so on and so forth.

                          Or they just don’t trade in Saudi Arabia.

                          That’s an option for many people dealing with the GDPR: If you don’t have a website in Europe, or a business in Europe, and you don’t trade in European data, then the GDPR doesn’t apply to you. However Facebook – even if they weren’t in Ireland does trade in European data by selling advertisements to European businesses.

                          They could choose not to- they could refuse to do any business with any company in Europe. This kind of structuring would probably make them safe, but it’s not realistic: There’s simply too much money in Europe.

                          1. 1

                            They would have to cease trading with any company AND not have any European “customers” (users). Having the data of any entity (person or company) that resides in a European country makes you liable according to GDPR.

                            Problem is, without perfect geo-blocking and more, users will “slip” through and then they are in the same situation.

                            1. 2

                              I think the point is that if you have no company footprint in EU, not business partners there, etc, then the GDPR is unenforceable against you. Yes, they can sue you in an EU court and bring a judgement against your corporation, but if your corporation will never have any footprint there then there is no power to enforce the judgement.

                              1. -1

                                This is true. You can violate any law, until you get catched.

                                However I wonder what’s the impact of such approach on the value of a company.

                              2. 1

                                Having the data of any entity (person or company) that resides in a European country makes you liable according to GDPR.

                                Ehm… no.

                                The “data subject” is always a European citizen, a person, not a company.

                                Can you point me to the GDPR article that lead you to this conclusion?

                                1. 1

                                  You are completely right in that sense. However, companies who are handling personal EU data will make any company, that they in turn hand (parts of) that data to, liable (and require a data processor / data manager agreement). As you say, handling data for a EU company that has no personal data is not liable to GDPR, but it is a slippery slope because handling pay slips, staff management, etc. will very often have personal data.

                                2. 0

                                  Problem is, without perfect geo-blocking and more, users will “slip” through and then they are in the same situation.

                                  An IP Address isn’t “personal data”, a name isn’t “personal data”, even a login name isn’t “personal data”. What exactly are the circumstances that you believe you would be “slipped” some personal data without realising it?

                                  1. 1

                                    Problem is, without perfect geo-blocking and more, users will “slip” through and then they are in the same situation.

                                    What exactly are the circumstances that you believe you would be “slipped” some personal data without realising it?

                                    Frankly, that sentence sounds a lot like FUD, but IP addresses and names are personal data according to GDPR.

                                    1. 1

                                      Frankly, that sentence sounds a lot like FUD,

                                      “FUD” means “fear, uncertainty and doubt” and refers to a specific kind of marketing campaign where the goal is to spread enough misinformation about a subject so that people are afraid of engaging further with a subject.

                                      Telling people they’re going to be accidentally breaking the law for being connected to the Internet is FUD. Please stop spreading it.

                                      but IP addresses and names are personal data according to GDPR.

                                      False.

                                      The GDPR doesn’t mention IP addresses at all. It never once says that a “name” is personal data.

                                      The ICO (GDPR Regulator in the UK) even gives the example of Names not being personal data:

                                      By itself the name John Smith may not always be personal data because there are many individuals with that name.

                                      1. 1

                                        It never once says that a “name” is personal data.

                                        Dude, you really need to read the law:

                                        (1) ‘personal data’ means any information relating to an identified or identifiable natural person (‘data subject’); an identifiable natural person is one who can be identified, directly or indirectly, in particular by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person;

                                        I urge anyone using your consulting to hire a competent European lawyer instead.

                                        1. 1

                                          That doesn’t disagree with what the ICO said.

                                          The key language is an “identified or identifiable natural person”.

                                          If you can’t identify a natural person with it, and you have no normal business practice that would enable you to do so, it’s not personal data.

                                          For a consistent ruling of this, see opinion 4 which teaches that a dynamic IP address cannot identify a person. Why would anyone think a name would?

                                          I urge anyone using your consulting to hire a competent European lawyer instead.

                                          I do the same. I’m not a lawyer. I’m an SME who tells companies what they can do, and then invites outside legal to review my advice. I’m significantly more expensive than a European lawyer (in billings), but companies who want to understand what exactly can they do need someone like me instead of some guy on the Internet.

                                          1. 0

                                            If you can’t identify a natural person with it, and you have no normal business practice that would enable you to do so, it’s not personal data.

                                            For a consistent ruling of this, see opinion 4 which teaches that a dynamic IP address cannot identify a person. Why would anyone think a name would?

                                            Because you cannot know if a specific name can be used to identify the user.

                                            You just need one identificable name to violate the GDPR for that user.

                                            Your “normal business” practices means nothing in this regards.
                                            Article 33 explicitly states that:

                                            The controller shall document any personal data breaches, comprising the facts relating to the personal data breach, its effects and the remedial action taken. That documentation shall enable the supervisory authority to verify compliance with this Article.

                                            This means that a company is accountable for any personal data leak, be it due to a bad employee or a smart hackers crew using a zero day.

                                            The law says that any information that can be used to identify a user directly or indirectly is personal data. And it includes data related to “one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person”

                                            So if a company holds my dynamic ip address with the time of my connection in its database and a third party can use these informations together to learn my identity (as the ISP that assigned me the IP could do) these information are personal data.

                                            Same for a login name, if somebody can identify my identity with the couple username + host, that username is personal data per GDPR.

                                            I’m not a lawyer.

                                            Neither do I.

                                            But I can read a law as any other European citizen can do.

                                            What you said about name and IP is simply misleading.

                                            I’m significantly more expensive than a European lawyer

                                            Really, I have no doubt.

                                            If that is the problem I can suggest pretty expensive and competent European lawyers.

                                            But while I have no economic interest in this, as an European whose personal data are protected by the GDPR, I’m not happy to read you give technical advises without a minimal understanding of the law.

                                            I’d like to have a list of the companies taking your advices, to avoid using their services.

                                            1. -1

                                              What you said about name and IP is simply misleading.

                                              The court decision you’re referring to (and you should read it, since it’s clear you haven’t) considers an IP Address and timestamp identifying to the ISP, since they can look up their customer’s name.

                                              You just need one identificable name to violate the GDPR for that user.

                                              That is nonsense.

                                              Go away troll.

                                              1. 0

                                                You just need one identificable name to violate the GDPR for that user.

                                                That is nonsense.

                                                That is the GDPR law. Literally. Article 4.

                                                If my name is unique, and your db store my name, you are holding my personal data.

                                                The court decision you’re referring to considers an IP Address and timestamp identifying to the ISP, since they can look up their customer’s name.

                                                And if an ISP employee breach into a system and get the IP Address and timestamp of the users, she will be able to identify such people and gain sensible informations about them from the system.

                                                Now, if the system’s controller don’t notify the European users about the data breach, thinking he is not collecting personal data subject to the GDPR, he will violate the Article 33.

                                                Go away troll.

                                                Fine, I guess I can not convince you to admit a mistake on this topic as it seems a good source of revenue.

                                                But please, try to read and understand the law. It’s pretty simple and clear.

                                                1. 0

                                                  You just need one identificable name to violate the GDPR for that user.

                                                  That is nonsense.

                                                  That is the GDPR law. Literally. Article 4.

                                                  Stop trolling. The GDPR never uses the string “identificable”

                                                  If my name is unique, and your db store my name, you are holding my personal data.

                                                  The ICO disagrees. They’re the one responsible for regulating me (I’m in the UK) and they’ve given no further guidance on the subject. It is however consistent with their other positions on identifying personal data.

                                                  And if an ISP employee breach into a system…

                                                  What exactly do you think the normal person should think the risk is of someone who works at an ISP breaking into their website? You’re being absurd.

                                                  Stop trolling.

                                                  1. 2

                                                    Stop trolling. The GDPR never uses the string “identificable”

                                                    However, correcting the obvious typo shows the word “identifiable” appears eight times in that article.

                                                    1. 1

                                                      Nowhere does it say “one identifiable” or a “single identifiable” or anything related to that.

                                                      What is your point?

                                                    2. 0

                                                      Both texts you refer to predate GDPR. And the GDPR never refer to them.

                                                      So they are both off-topic in this thread.

                                                      But, actually, I think that everyone can compare your statements with the GDPR text and can easily see how rooted are your advises.

                                                      1. 1

                                                        So they are both off-topic in this thread.

                                                        The ICO’s opinion is all that matters.

                                                        Not yours.

                                                        But, actually, I think that everyone can compare your statements with the GDPR text and can easily see how rooted are your advises.

                                                        Yes. I’m telling people don’t panic, and you’re shouting panic; pointing to articles you haven’t read with interpretations that isn’t shared by the regulators even most professionals working in this space.

                                                        Then there’s that weird thing you’re saying about ISP employees breaching people’s sites…

                                                        Go away.

                                      2. 1

                                        I might not have been clear, my point is that a company/website/service cannot reliably avoid european users (by geo-blocking, asking them to swear that they are not from EU, etc.) and once those users are on the platform their data is subject to the GDPR.

                                        1. 0

                                          You’re not.

                                          Having a European visit your website doesn’t necessarily mean you have any extra burdens.

                                          If you don’t trade with Europeans and aren’t trading data specifically about Europeans[2], then you aren’t in-territory.

                                          If you don’t know who they are, cannot find out who they are, and the information you have doesn’t through your normal business practices identify a natural person[2], then your data is not material.

                                          I still cannot see how you can collect personal data accidentally if you know what personal data means, or what the GDPR is attempting to accomplish. The law doesn’t talk about “users” or “platform” in this way, and the regulators do not provide guidance in ethereal cases like yours.

                                          [1]: For example, if you sell targeted advertising on your website and allow your buyers to break down by Geography, then you’re in-territory.

                                          [2]: That last one might seem tricky, but it’s designed to catch companies who make behavioural profiles of people using cookies and IP addresses. If you’re not doing anything like that, then you’re probably fine, but I’d need a specific example to say.

                                          1. 0

                                            through your normal business practices

                                            Please @cpnielsen, compare this to the definitions for “personal data breach” in Article 4 of GDPR:

                                            ‘personal data breach’ means a breach of security leading to the accidental or unlawful destruction, loss, alteration, unauthorised disclosure of, or access to, personal data transmitted, stored or otherwise processed

                                            and to the definition of “personal data” in the same article:

                                            ‘personal data’ means any information relating to an identified or identifiable natural person (‘data subject’); an identifiable natural person is one who can be identified, directly or indirectly, in particular by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person;

                                            Neither definitions cite in any way the use you do of the personal data in your business practices.

                                            A certain set of data is personal indipendently from the use or the inferences that you can do about them.

                                            Any information relating to an identified or identifiable natural person is personal data.

                                            1. 1

                                              Did you mean to tag me or was that meant for @geocar? Either way, I think we agree.

                                              To examplify my point: Let us pretend you are Bookface. You explicitly block any European user from signing up for your site (and since you opened on the day of the GDPR launch there are no users already signed up). Because your blocking is not perfect, Gerard from France stumbles across Bookface.com, signs up and gives you his full name, e-mail, date of birth and street address. You are now subject to GDPR as you are holding personal information about him. You can try to ignore it, and actual enforcement might be difficult (especially for individual cases), but the EU is very clear on this: You are subject to GDPR.

                                              Depending on how you use this data and whether it is required for your platform to operate, you may have to ask Gerard to explicitly opt-in (or not use the service at all, if presented at sign-up).

                                              1. 2

                                                Did you mean to tag me or was that meant for geocar?

                                                Comment was for both of you.

                                                But I realized by his last answer, that @geocar is not talking about GDPR as generally applied in Europe for European citizens, but about the UK reception that protect UK citizens only.
                                                This explains his lack of understanding of the GDPR, but it also means that you can (probably, IANAL) safely take his advices for data relating UK citizens. Not for data relating to other Europeans.

                                                A relevant example is the name of a user (or her IP Address) that are notoriously personal data according to the European GDPR, but that, according to geocar, are not to be consider as such in UK.

                                                To examplify my point […]

                                                Yes, we agree.

                                                In your example, once the data of Gerard are in your system, you are subject to GDPR. Even if Gerard agrees on the processing you do, you have several obligations in his regards, such as assuming proper security measure to protect his data and informing him if his data get disclosed by an accidental data breach. You should read the law for a full list of the obligations.

                                                And, AFAIK, you can only avoid such obligations by completely removing Gerard’s data from your system (including from logs and backups).

                                                I encourage you and everybody else to read the law. It is really clear and well written.

                                                And while a competent European lawyer might help, anybody in good faith can easily understand it.

                                  2. 4

                                    So I’m surprised that easyDNS can serve UK customers without collecting taxes - they must be violating UK law, right?

                                    I would imagine there is an amount of “Okay, so come and get it” involved with the VAT taxes and other laws. There’s no mechanism for enforcement of that decision if you hold no assets within EU member states. Now, the EU could attempt to block access to that website, but we all know how effective that is.

                                    If you can’t hit someone with a stick what incentive do they have to follow your orders? Especially if there is no reward for doing so other than a pat on the head? Doubly so if following those orders is a pain in the butt.

                                    1. 1

                                      If you can’t hit someone with a stick what incentive do they have to follow your orders?

                                      Can you elaborate?

                                      Are you saying people can violate US laws (eg a US company copyrights) till they stay outside the USA?

                                    2. 2

                                      Normally, I’d say this is off-topic for lobste.rs

                                      This is something I sincerely do not understand.

                                      Why it’s off-topic if its tags are [law] and [privacy]?

                                      1. 3

                                        The way to detect a true lobste.rs topic is to find one whose title you barely understand, which has one upvote and which has few replies. The replies, however, are substantial, mind opening and mind blowing. After reading the comments you can go back to the article and perhaps understand the title. To understand the article you might have to write some code yourself.

                                        That’s how we started out.

                                        I’m not that much of an old grouch to deny people their party line talk, but frankly, there’s still that YCombinator powered bar fight site, right? Why clone it here?

                                        That said, I’m okay with a writeup like this appearing once in a blue moon. But I do find myself aggressively hiding stories more and more.

                                        1. 0

                                          The way to detect a true lobste.rs topic is to find one whose title you barely understand… To understand the article you might have to write some code yourself.

                                          It’s an amazing high standard.

                                          But I’d say it would exclude 99% of the posts here and anything related to law, privacy, practices and culture.

                                          Also I’d have some issues at posting anything I wrote myself, because I only write about topics I understand myself.

                                          1. 2

                                            because I only write about topics I understand myself

                                            Beginner mistake;)

                                            1. -1

                                              because I only write about topics I understand myself

                                              Beginner mistake;)

                                              Beginning expert’s mistake… ;-)

                                    1. 4

                                      It’s a nice list and well researched.

                                      Not listed, for C++, which I rather like the look of, is “units”. It’s header only, compile time (everything resolves to doubles during compilation) and released under MIT.

                                      Sample code looks like:

                                      foot_t              len   = 5_m;                            // simple implicit conversion
                                      meters_per_second_t speed = 60_mi / 1_hr;                   // more complex implicit conversion
                                      square_meter_t      area  = 15_m * 5_m + 1000_cm * 1000_cm; // previous example with mixed units
                                      

                                      And F#’s measures feature makes me want to try out F# (but not enough to actually do it).

                                      1. 12

                                        A web search for “Eeek! page_mapcount(page) went negative! (-1)” returns 303 results for me.

                                        The searches seem to indicate that users have been periodically running into this error message since 2007.

                                        This report from 2008 seems to indicate a way to reproduce it, someone seems to have found a commit that introduced the bug. The bug is closed with an unsatisfying

                                        as the package user-mode-linux has just been removed from the Debian archive unstable we hereby close the associated bug reports.

                                        1. 3

                                          Sure, so maybe it was reproducible. All that Matt said is that until a pattern emerges, cosmic rays are a reasonable conclusion.

                                          1. 7

                                            If it’s reproducible, meaning there is a sequence of actions you can take to generate that condition, I’d say unlikely to be a cosmic rays.

                                            I’d say that responding to a bug report with “cosmic rays” is unprofessional. There is a stock answer that goes “Sorry, can’t reproduce. Closing, please re-open if you can give me steps to reproduce” that is much more helpful and less antagonistic.

                                            I work with pretty friendly people and so I look at reports of the hostility in software with a skeptical eye, but little things like this remind me that life in the software development world can get nasty for no reason at all.

                                            1. 7

                                              There was no reproducibility at that time, and it could be explained by cosmic rays.

                                              Matt is one of the nicest Linux hackers I know. Mercurial is nice and has a good UI because Matt cares about being nice. His detailed explanation here of why it’s reasonable to blame cosmic rays until a pattern emerges (which hadn’t at the time he wrote that), is a very nice and detailed way of explaining why they did not want to look into the problem any deeper.

                                        1. 1

                                          They will partner and they do anticipate etc. These douches would get laughed out of the Shark Tank.

                                          Looks like any other ICO scam, what am I missing?

                                          1. 3

                                            It’s a site made by the SEC to educate the public about the dangers of ICOs and unregulated securities.

                                            1. 1

                                              You may the one person who actually poked around

                                              1. 1

                                                Nah, I just read the coverage ;)

                                                (Also I recognised the name from the Howey test)

                                          1. 7

                                            Nobody should ever really be criticizing tar zxvf for doing what everyone reaches for tar to do most of the time: decompress a tar.gz file. Taking the most common case that people have to deal with and requiring them to reach for a more complicated combination of tools, instead of just directly addressing the problem, isn’t good design either.

                                            Actually I think that forcing people to think might be the moral things to do.

                                            Learning how to compose small programs to solve your own problems is a useful skill, that goes beyond computer.

                                            While I have been raised as a web developer reading “Don’t make me think” a couple of times, while I’m all for accessibility (in the original meaning), usability and software ergonomics, I recently realised that people need to understand computers much more deeply to reduce their dependency on big corporations that use them as laboratory mice.

                                            So software should be ergonomic, should feel simple and intuitive (after reading the manual), and there should always be one obvious way to compose tools to perform a task.

                                            But good software should also improve the users, ideally turning them to hackers.

                                            Good software should foster creativity, curiosity and deep thinking.

                                            1. -1

                                              It is immoral to force people to do things.

                                              1. 4

                                                You mean… like in elementary school?

                                                If forcing people to think is immoral, what about tools that reduce their ability to think?

                                            1. 3

                                              In Homebrew the llvm package is bottled for Sierra. Bottles are binary packages. It should have been a simple download and untar, handled by brew, unless you broke something.

                                              Did you add build flags that prevented brew from using the default binary distribution? Why? When the build was taking forever you didn’t think that maybe your extra flag wasn’t important to test std::optional? Nome of the build options to that package are remotely necessary for most people.

                                              As for installing Xcode, why was your OS so out of date? Xcode has only required High Sierra for a month. You’ve had 7 months to install High Sierra. Sounds like your problem.

                                              1. 3

                                                “You have not done the busywork Apple expects of you” should not be the OP’s problem.

                                                1. 3

                                                  What is OP’s problem? Having to turn on the computer? Where’s the line? At some level, we need to take responsibility for being prepared to do what we plan to do. std::optional isn’t supported by my dos box with turbo pascal either.

                                                  1. 5

                                                    Hopefully we can both agree that “DOS box with turbo pascal” and “last year’s version of a current system” are different situations, only one of which has any connection to the discussion at hand.

                                                    1. 1

                                                      Is it last year’s version or is it current?

                                                      This is like the inverse of the for want of a nail parable. All you wanted was to shoe the horse to send a message, but you needed to make a nail, so you needed to mine some ore, so you needed to feed the workers, so you needed to grow some wheat, so you needed to plow the field. So much yak shaving!

                                                      1. 1

                                                        A slight alteration to you tale @tedu:

                                                        All I wanted was to try out this new nail for the shoe. I went to the nail man, and he said, but this nail needs a new hammer. See Joe. I went to Joe and Joe said, but this hammer needs a new tool shed. See Moe. I went to Moe and Moe said, but this tool shed needs a new house. So I took out another mortgage. And so it goes.

                                                    2. 1

                                                      “my dos box with turbo pascal”

                                                      Oh yeah, that reminded me I had a submission about that. ;)

                                                1. 12

                                                  I thought it would actually be about std::optional, not workspace issues that have nothing to do with the problem at hand.

                                                  TL;DR: keep your toolchain up to date if you want to use recent language features.

                                                  1. 3

                                                    yeah. I suspect better article naming would be better at not leaving people feel like they kept on expecting the article to go somewhere it didn’t.

                                                    1. 9

                                                      I think it’s funny because the reader’s experience parallels the author’s experience of wanting to get someplace.

                                                      1. 4

                                                        Somebody gets me! :)

                                                      2. 2

                                                        Sorry folks :(. But std::optional works as one expects - you can write functions to accept std::optional and you just check early on if it evaluates to true and just return empty as needed, so you can chain functions neatly.

                                                        Now, if only we could have pattern matching …

                                                        1. 3

                                                          I think the consensus of languages with options and pattern matching is “don’t use pattern matching, use combinators”.

                                                          1. 4

                                                            Hmm as a full-time Haskeller “don’t use pattern matching” is news to me. Do you mean “don’t use pattern matching for fundamental vocabulary types like Maybe or Either? In which case it’s a reasonable guideline. For types representing your business domain, pattern matching is perfectly good practice. IMHO exhaustiveness checking of pattern matching is an indispensable feature for modelling your domain with types.

                                                            1. 1

                                                              Do you mean “don’t use pattern matching for fundamental vocabulary types like Maybe or Either?

                                                              Yes.

                                                            2. 3

                                                              Consensus, really? I’m a big fan of combinators, but I’ll still match on option types sometimes if I think it looks clearer.

                                                              1. 2

                                                                Ooh, this is interesting to me - can you expand on this (or point me to some writeups)? Thanks!

                                                            3. 2

                                                              Agreed. I read all the way down and nothing significant about std::optional.

                                                              I thought it was going to be some sort of piece about how using std::optional could lead to yak shaving or something :(

                                                          1. 5

                                                            I guess it’s not much use after-the-fact, but I believe we have reasonable solutions for these issues nowadays:

                                                            • Docker, and the official GCC image. If clang is a hard requirement, it should be fairly easy to find an image based on a distribution with a fairly recent version of LLVM in its repositories and quickly build on top of it.
                                                            • the Nix package manager, which seems to have a working build of Clang 6 for Darwin.

                                                            Nix has particularly helped me keep my dev dependencies out of my base system, and is a nifty tool to have under your belt.

                                                            1. 3

                                                              Hey, I should check out Nix. I keep hearing about it. Thanks!

                                                              The docker solution I’m pretty skeptical about. First, this would require me to run my application inside docker (right?) Secondly, docker for mac keeps eating up disk space. It’s SO annoying and last time I checked it was a won’t fix. I #deletedocker from my mac.

                                                              1. 2

                                                                If you build your binary through Docker, you either have to run it in a container, or you can link it statically, assuming you run Linux on your host OS. I understand how both options aren’t very appealing to you.

                                                                Nix is a really useful collection of software. I have no first hand experience with it on OS X, but anecdotally, it works fine. Do check it out!

                                                            1. 5

                                                              A few months ago, in a crowded subway car T in Boston, I had my laptop open, working on some hobby C++ code. Someone sat next to me, noticed my code, and exclaimed “Is that C? I didn’t know anyone used C any more”.

                                                              1. 4

                                                                What did you answer? It’s a tricky question.

                                                                1. 3

                                                                  I think I said “Yes, some people still do” and left it at that.

                                                                  1. 3

                                                                    That was nice of you. Id say, “Well, it depends on what they want to accomplish. What language were you using most?”

                                                                    (Mentions one written in C/C++.)

                                                                    (Uses that as example to explain why people use it.)

                                                                    I like to have just a little fun with those situations.

                                                              1. 2

                                                                Author has spent a lot of time and love making an interactive exposition. The author explains things by making you create networks interactively that have certain properties. Very lobste.rs worthy. My offspring had a lot of fun just creating networks!

                                                                1. 4

                                                                  I believe that there’s a very real chance that a reëvaluation of scientific research — particularly the social sciences, which are so soft as to border on pseudoscience to begin with — in light of this new understanding is very likely to yield unexpected & revolutionary results.

                                                                  1. 7

                                                                    The social sciences are not “so soft as to border on pseudoscience”. Yes P-Hacking and over reliance on p-values are an issue, but they’re an issue unilaterally. It matters just as much in physics as it does in social science. The idea that social sciences are somehow less rigorous than say physics is I think fallacious and without merit. Physics is still ultimately rooted in experimental evidence which is statistical in nature. You realize you’re discrediting an entire set scientific fields with literally no evidence and likely with very little knowledge of the subject. It’s not like there’s been literally no replication in the social sciences. What an absolutely absurd claim.

                                                                    1. 6

                                                                      I have to agree with @bargap here. Physics is a poor example to hold up against the social sciences. Physics results require a level of significance that is mind boggling. Of course those piddly experimentalists do get things wrong sometimes. But a better comparison is perhaps life sciences. The basic problem is that the system is so complex that it is hard to figure out all the moving parts and make sure you’ve bolted down all but a few.

                                                                      There is a running joke about “Doctors recommend … “ (take your pick - babies should sleep on their back/belly, this food is bad/good for you, this causes/cures cancer, this causes/does not cause autism …) precisely because we’ve been burned so many times by studies that just did not have enough N, or more insidiously (and forgivably), had a biased N.

                                                                      Social sciences study PersONS which are much more complex than protONS or electrONS but their tooling and standards are, paradoxically, lower, not higher and society seems to have an expectation of what the right answer should be, allowing social biases to play a disproportionate role in biasing reports in these fields.

                                                                      1. 4

                                                                        If you look in spaces like chemistry or spintronics you’ll find a lot of papers that people end up not being able to reproduce because it turned out that the machine that the writers were using had issues.

                                                                        In situations where there are only 5 or so machines in the world that can do an experiment, if 1 of them has an issue then it’s not always easy to validate. Especially when the research methodology is “cartesian product of every material with every technique => see if something happens”. And even absent that, people’s interpretations of measurements change over time too!

                                                                        Agree that people are harder to study, especially in long term stuff. But we don’t do many physics experiments over 20 years either! It’s mainly that time is hard, and preconditions are hard to set up. You can totally do experiments in social sciences over a small time scale correctly.

                                                                        1. 5

                                                                          Instead of comparing the foundations of physics to the edges of social sciences you should be considering the edges of physics, after all it doesn’t make sense to compare things which have a thousand years of replication to ones with tens of years. We’re still not sure that dark matter actually exists. Classical bias risk is pervasive in theoretical physics and is a constant threat.

                                                                          The analogy is instead saying “Medical science borders on pseudoscience, we should cast doubt on the entire field including claims such as “Arsenic is poisonous” because some of the newer claims on cancer haven’t yet been replicated”.

                                                                          To be entirely clear you haven’t been burned by science, you’ve been burned by irresponsible reporting which has confidence from a single study.

                                                                          This article is also relevant here https://news.harvard.edu/gazette/story/2016/03/study-that-undercut-psych-research-got-it-wrong/

                                                                          The concession is that there hasn’t been enough replication but a recent study reported on by ars which I don’t have on hand right now says that the replication rate of social science studies were around 70%, which is yeah not great but it’s hardly pseudoscience.

                                                                          1. 3

                                                                            To be entirely clear you haven’t been burned by science, you’ve been burned by irresponsible reporting which has confidence from a single study.

                                                                            That’s a classic defense. “I never said that! They blew the press release all out of proportion”. Sometimes it is true.

                                                                            I know of many papers where inferences and conclusions are not warranted by the data and have seen this in different fields of study. I infer that this is common human behavior to game a the system that rewards visibility and volume.

                                                                            1. 5

                                                                              You have conveniently dodged the main premise of my argument. Sure I’ll concede there are plenty of bad actors, but they aren’t magically condensed in the social sciences.

                                                                              1. 2

                                                                                The social sciences are definitely one of the areas where bad studies are harder to root out because of lower standards of rigor combined with the complexity of the subject and the fact that “truthiness” is easier to determine and therefore forms an extra social pressure not to challenge a particular study if it conforms to current social biases.

                                                                                1. 3

                                                                                  I don’t think its actually reasonable to say that the newest physics are any more rigorous, any less complex, or any less rife with bias. They both use studies with statistical evidence so they both have a lot of rigor but it’s hard to beat replication. They both are very very complex. They both have lots and lots of human bias, from a bias towards classicalism, conservativism, anti-classicalism and modernism. That doesn’t mean that either of them are anywhere near pseudoscience. The claim is just uninformed.

                                                                    1. 1

                                                                      My android phone rebooted by itself about 5:00pm EST yesterday- is that about the same time?

                                                                      1. 3

                                                                        And you scan this and someone - say even an over eager document storage and delivery system - has the “OCR” feature on and thinks they are doing you a favor because they’re compressing your pdf …

                                                                        I’m also amused with this throwing of deep learning at everything. In this problem the model for the perturbations on the letters is known and therefore reverse model can be developed. Is this the new fashion: “Deep learning for matrix inversion”?