1. 5

    My biggest pet peeve is how many people want JavaScript to be the language they know best. Some come from Ruby and want it to be Ruby. Some from Java who want it to be Java. Some from Python.. you get the idea. I do like the amount of attention JS gets, but all of the various proposals that are not quite there yet that keep being used as if they are (like decorators/annotations) drive me a little bit nuts. I’ve been using JS for a really long time and I don’t feel like it’s missing that much stuff. It really just needed some things cleaned up (which has generally happened over time).

    Also the insistence that JS needed “class” syntax (though it still isn’t classical inheritance), which was implemented, and now many people are trying to move back to functions/functional-based programming, throwing out the whole class baby with the bathwater. There’s too much flux there and not necessarily for the best reasons.

    I am with the other guy who was talking about bundling and packaging things. If I can avoid it and use modern browsers, I do. But the reality is that those bundlers are still very useful particularly on applications that work on older browsers.

    1. 2

      It’s not just Javascript. I can make the same argument with Lua—the Pythonists that come to Lua want it to be Python; the Rubyists want Lua to look like Ruby, etc. It takes time to learn the lingo of a new language, and it’s darn it, it would be easier if it was just like <old language I know>.

      1. 1

        ES5 for life!

      1. 5

        I don’t understand. Why get frustrated with Windows getting in the way of running a *nix dev environment when you can just…install Linux? The Windows 10 OS is basically gratis and you’ve spent $1800 on a decent piece of hardware. Just put Ubuntu or something on it and call it a day.

        1. 1

          Well his first and most visible complaint about windows was the font rendering so I would expect him to have a heart attack when he notices all of the little quirks that tend to come along with the typical Linux desktop.

          1. 1

            The author would probably be pretty unhappy with all of the little quirks of the Linux desktop, but font rendering probably isn’t one of them. Font rendering is so much better on Linux than on Windows that it’s like night and day.

        1. 22

          Hi, everyone! I’m the creator of Killed by Google. We’re an open source project tracking Google’s dead or dying products. I’m happy to answer any questions.

          1. 4

            So, did you get a big traffic spike from Lobsters? I also posted about this on Mastodon, but I don’t think it picked up quite so much steam there.

            1. 7

              I discovered it was posted after a friend tagged me on a local community Slack channel. Quick look at analytics tells me Lobsters is the leading referral today (37% of referral traffic), but I imagine this audience is more likely to have ad/analytics blockers installed so that number may actually be higher.

              1. 3

                How many unique hits?

                1. 7

                  Today has about 4,000 unique users so far. 85% more than yesterday.

                  October has been rather busy with over 100k users the vast majority of them are new users. Rolling average is about 50k users every thirty days.

                  1. 4

                    Thanks for the info. It suggest a few thousand came from Lobsters.

                    Much of our audience are passive readers who may be active elsewhere or just occasionally here. I’m always curious how many there are in general or following specific topics.

                    1. 11

                      Note that this is only counting traffic directly from Lobsters with a referrer - we also send traffic from our account on Twitter and people reposting our links elsewhere or sharing person-to-person. We average 18.8k unique IPs per day, 19.8k on weekdays; and have seen a total of 210.6k unique IPs over the last 25 full days. (And see this footnote for a rough estimate of what our traffic is worth in dollars.)

                      Quick daily counts of unique IPs from the current nginx log file (file rotated during 2019-10-05, so 06 to 31 is complete days); I’m including the command in case I goofed + as a starting point for other queries:

                      $ for i in $(seq -f "%02g" 6 31); do echo -n "2019-10-$i,"; grep "$i/Oct/2019" lobste.rs.access.log-20191006 | cut -d' ' -f 1 | sort | uniq | wc -l; done
                      2019-10-06,15826
                      2019-10-07,19041
                      2019-10-08,19375
                      2019-10-09,19426
                      2019-10-10,19786
                      2019-10-11,18818
                      2019-10-12,15631
                      2019-10-13,16457
                      2019-10-14,19296
                      2019-10-15,19840
                      2019-10-16,19527
                      2019-10-17,19959
                      2019-10-18,19635
                      2019-10-19,16111
                      2019-10-20,16000
                      2019-10-21,20866
                      2019-10-22,19908
                      2019-10-23,19756
                      2019-10-24,19907
                      2019-10-25,19191
                      2019-10-26,17780
                      2019-10-27,16543
                      2019-10-28,20396
                      2019-10-29,20252
                      2019-10-30,20594
                      2019-10-31,20166
                      
            2. 2

              Thanks for creating this! One thing that would be helpful is a link to the announcement claiming the sunset. One example is Google Hire. The list claims it will sunset in Sept 2020 - but I can’t find any announcement from Google about this! Where did you get that date?

              1. 4

                Google has the date posted on the Hire site. Thanks for pointing that link though. It appears Wikipedia editors decided to redirect what used to be an actual page.

                More generally, I ran into a tough question of “What do I link to as a source?” I decided that linking to Google itself (even their blogs) should be the last resort because they tend to 404, redirect, etc over time. To avoid link rot, I prioritized external sources in this fashion:

                1. Wikipedia
                2. Reputable News Source
                3. Other Sources (Including Google)
                1. 3

                  That makes perfect sense, thanks again for creating such a helpful resource - I’ll need to check it often :)

              2. 2

                What web server does Netlify use or do you use on Netlify?

                1. 4

                  Netlify uses a “Multi Cloud” solution, but from everything I can tell they run this site on GCP using the static files generated in the build process. Beyond that? Not sure what their exact server setup is.

                  I can say that Netlify was a breeze to understand and join. It took all of 20 minutes to move from GitHub pages.

                  1. 4

                    Thanks for the reply! Took me down a fun rabbit hole.

              1. 6

                Python: The GIL ruins lots of things. https://realpython.com/python-gil/ :(

                1. 4

                  It ruins a lot less than people think it does, and there are a lot of cases where sub-interpreters will help here.

                  What’s your specific use case?

                1. 23

                  At last, adulthood! Downside, we’re now at legal harvesting age. https://mlcalliance.org/all-about-lobster/lobster-101-reproduction-and-life-cycle/

                  1. 3

                    Mine is nice and simple. Using Bash, it shows date-time in white, then path in red. First line in my .bash_profile:

                    PS1="[\d \t] \e[0;31m\w $ \e[m "
                    

                    Example output:

                    [Mon Jun 17 11:52:27] ~/o19s/metric-plots $
                    

                    I have every new prompt in my shell print the current date/time, because I often run long jobs from the cli and its a nice little trick I have to check how long it ran.

                    1. 5

                      If you haters actually got what you were asking for, you would also hate that. Maybe just skip on over articles like these from now on instead of actively discouraging anyone from ever creating checklists, god forbid. You’re going to walk into the airline industry and go “No explanation why I should verify that the door is closed, quite uninteresting” and then fall out of the plane when you get up to get coffee. There’s a downvote button for a reason. You can downvote without shutting down all discussion about the article.

                      Meta, perhaps we should have a tag for lists so that people who don’t like lists can avoid them. Personally I love lists, they are clear, efficient, and to the point. No dancing around the important stuff.

                      1. 2

                        Nobody’s shutting down discussion about the article, and nobody’s being an asshole except you. Some people are criticizing the form and content. Like people do on every article.

                        If you haters actually got what you were asking for, you would also hate that.

                        We have seen lists with explanations and people absolutely love them: https://lobste.rs/s/txtwkf/falsehoods_programmers_believe_about

                        1. 2

                          I didn’t ever claim you, or others were being an asshole. I did rightly claim that you hated articles like these, a hater is one who hates, not one who is an asshole. Sure you like lists with full explanations but I’d argue that’s an entirely different kind of article. It’s astronomically more laborious to make and I’d argue no more useful.

                          Buildings do not move

                          In Zürich, a 6200 ton building was moved by 60 meters to make way for railway tracks

                          A single example or explanation of a failure case is not useful. This particular explanation is extremely misleading, and would take at least two paragraphs to sufficiently explore. A building moved 60 feet once, that’s definitely going to be the scenario I run into. The whole point of these is that providing a specific counterexample is not sufficient to show that you aren’t going to hit it. A trailer home can move very easily. A tiny home may be moved at will. Some people have addresses but do not have homes, but they will list themselves as living in a particular building that does not exist and then will move that building around wherever they happen to be. You can’t just avoid having to use your brains, and it’s an unreasonable burden to people who make attempts to have exhaustive exploration of things that can go wrong. The article you linked has a total of 10 examples. That’s not super useful.

                        2. 1

                          I don’t know who you are, but thank you so much for this comment. The paltry upvote I gave you was not enough.

                        1. 21

                          Just a list and no explanation, quite uninteresting.

                          1. 8

                            Hey, so thanks for the criticism (I think). This is the 4 year old party I was talking about. It’s a fun format of rants in a list. I agree it’s not for everyone. https://spaceninja.com/2015/12/07/falsehoods-programmers-believe/

                            1. 8

                              I think people have the same problem with every list of this genre: There’s no explanations and no suggestions.

                              There are, implicitly, problems to avoid, but even that has limits, in that it assumes the programmer is trying to write the most generally applicable software, possible or otherwise. For example, from “Falsehoods programmers believe about time”: “The system clock will never be set to a time that is in the distant past or the far future”. Depending on the software, and how you define “the distant past or the far future”, you can assume this if you document it as a requirement. Kerberos does precisely this as part of its security model.

                              So in treating these things uniformly as “falsehoods” these lists assume that engineering trade-offs don’t exist, or that making such trade-offs is incorrect somehow.

                              1. 1

                                Well the statement that it will “never be set to a time in the distant past or the far future” is a falsehood. If Kerberos engineers had not considered this then their spec would have a gaping hole in it. So it sounds useful to me. The idea that the statement is carte blanche useless because in one extremely niche scenario you can as a working model assume that the time is not in the distant past or far future is pretty contrived. People will still violate the spec, you’ve just made it a scenario you don’t have to concern yourself with.

                                I do think lists of “Falsehoods” are “Brains not included”, you have to use your own mind and knowledge to consider how these scenarios may apply (or not apply), and that doesn’t mean they aren’t useful. For example in this article I noticed at least 3 things in our application that I hadn’t considered. Pretty useful stuff.

                                1. 1

                                  The idea that the statement is carte blanche useless because in one extremely niche scenario you can as a working model assume that the time is not in the distant past or far future is pretty contrived.

                                  I said the exact opposite: The statement isn’t completely true because of examples like Kerberos, so pretending that it’s necessarily a falsehood is wrong.

                                  1. 0

                                    I’m pretty sure you didn’t say the exact opposite, and I don’t even know what that means for this statement. Kerberos does nothing to protect you from getting distant past or future, it just means you are violating the spec by doing so.

                              2. 4

                                Almost all of the “falsehoods programmers believe” articles share this problem, though: they’re just a long list of stuff labeled “this is wrong”, but with no explanation of why those things are wrong, or what someone should do instead. This makes them extremely unhelpful.

                                1. 4

                                  I strongly disagree that they are unhelpful to everyone, though I do think they are less accessible to beginners. Some of these falsehoods don’t have a thing you can do instead. Some of them don’t have a good explanation as to why it is false. That doesn’t mean it’s not useful to know that it’s a potential pitfall when you hear it. Some of these you will do knowing they are a falsehood because there is no “good option”. In life we don’t always have a clear and obvious best option, but having a heuristic around risks is still useful.

                                  https://github.com/kdeldycke/awesome-falsehood

                                  1. 1

                                    The typical list-of-bullet-points “falsehoods” article, though, doesn’t provide enough information for anyone to decide “this has no good option, I’ll pick the least worst based on tradeoffs”, because it doesn’t say why the things in its list are wrong. If people were doing comparative explanations of why certain assumptions cause problems, and going over the tradeoffs involved, that would be useful. But they’re not: they’re just posting a list of “this is wrong and no, I’m not telling you why or what you could learn about the problem domain to let you make better choices”. Many of them verge on, or simply are, pure self-congratulatory “I know more trivia about this than you do”.

                                  2. 3

                                    Well-structured articles of this type imply underlying situations and behaviors by the order in which elements are listed, so that if you’re following the list, you end up with a general understanding of the landscape being described. This one mimics the structure only shallowly, though: you don’t, by reading it, get an understanding of how search is actually used or what kinds of problems you run into (although search is a pretty diverse space & depending on your data set & your user base’s needs, completely different behaviors are appropriate, which makes it a poor fit for this kind of list).

                                    I’m sort of tempted to write a different version of this list, keeping the “falsehoods programmers believe” format, to illustrate this point. When such a list is well-written, an intelligent reader (even one with no deep knowledge of the subject) ought to require no explanation for each point, because the order of the points has led them to update their mental model incrementally such that each point can be justified based on a generalization of the unstated logic behind the previous points.

                                    This one doesn’t do that, but instead just sort of skips around. The points that are obvious to people outside of search are things like “users will not expect search to act like google” – in other words, sort-of-cheap-shots about end users that don’t necessarily apply outside general-audience systems & don’t really need to be said in the situations where they do apply. Other points (like “search is not a database”) are deeper & really do need to be said, but probably ought to be contextualized so that they’re understandable.

                                    1. 1

                                      Well-structured articles of this type imply underlying situations and behaviors by the order in which elements are listed, so that if you’re following the list, you end up with a general understanding of the landscape being described.

                                      I’m not sure that I’d agree with that. Or, at least, I’d dispute how many “well-structured articles of this type” are in existence.

                                      I’m sort of tempted to write a different version of this list, keeping the “falsehoods programmers believe” format, to illustrate this point. When such a list is well-written, an intelligent reader (even one with no deep knowledge of the subject) ought to require no explanation for each point

                                      This reminds me of “well-written code doesn’t need documentation because it’s self-documenting”. Which is something that’s perhaps true in theory, but which I’ve always found to be false in practice.

                                      A little while ago I tried taking a different approach to this sort of article, to show what it would look like: the “truths programmers should know” isn’t a list of bullet points, and does go into detail on the problem domain to explain what’s going on and why common assumptions about it might fail. I don’t see why other “falsehoods programmers believe” articles couldn’t be written the same way.

                                      1. 3

                                        I’d dispute how many “well-structured articles of this type” are in existence.

                                        For sure, they’re a rarity. “Falsehoods programmers believe about names” does this, though.

                                        This reminds me of “well-written code doesn’t need documentation because it’s self-documenting”. Which is something that’s perhaps true in theory, but which I’ve always found to be false in practice.

                                        I wasn’t going for that take at all.

                                        Communication isn’t really a matter of conveying meaning by encoding that meaning (since that kind of communication can only express trivial truths), but by creating an environment that constraints somebody’s existing world model in such a way that the only way to process the message produces a change to the model. A teacher isn’t telling a student a sequence of facts, but asking a question in such a way that answering the question requires them to independently reinvent the theory behind the answer, and a good teacher knows how to do this incrementally so that each discovery is low-effort.

                                        In other words, this kind of article oughtn’t be a literal list of falsehoods so much as a tour through the intellectual space of the subject being described by way of iterative violations of successive models.

                                        Doing this requires us to begin with an understanding of what the reader already thinks (in the case of names, that one can implement a name form as two input fields that take ascii text, or in the case of time, the idea of newtonian universal time.) Each ‘falsehood’ in the list causes the reader to transform his mental model of an appropriate implementation in a predictable way, and so the order is determined so that it leads the reader from the most obvious model to the most correct model with a minimum of effort on the part of the reader, while still making the reader actually determine both the reasoning & the solution themselves.

                                        This is a hard thing to do with search, compared to names or time. Everybody with a CS degree was at one point asked to deal with name records in a naive way as part of some class assignment, & everybody except the sentinelese has basically imbibed newtonian time. Relatively few people think even shallowly about search implementations, so there aren’t obvious-but-false starting points that are easily identified: the points OP rejects are actually more nuanced than what J Random Hacker would probably come up with immediately. And, on the other side, there isn’t a maximally-flexible ending point: ultimately, you need completely different kinds of search systems for different types of data & different types of users (something management learned the hard way when they tried to force patents, trademarks, chemical, and scholarly journals to all use the same underlying search engine!)

                                  3. 4

                                    That there’s an equal, large number of upvotes for the article and your comment is itself interesting. Does that mean the content was interesting to half with others wanting different style? Or interesting to most of them who then agreed that it could be better after seeing your comment?

                                    If anything, it reminds me of the old strategy of having high-level points people can optionally drill down into. They expand, link, pop stuff up, whatever. Some people also did two versions of an article: a short one (eg executive summary) and long one (full details).

                                    1. 5

                                      Agreed. I’d rather have a list of only five items with a thorough discussion about why this is, than a way too long and boring list that I’m not going to dig through anyway.

                                      1. 4

                                        If you find it uninteresting then you possibly aren’t in the step of implementing or pushing against implementing search in your application. This is a healthy sane checklist of things to consider.

                                        1. 8

                                          If you’re pushing against search and bring up a “falsehood”, any good project manager would ask “why?” So having an explanation would help a lot.

                                          1. 1

                                            Sure, but this article would be a bajillion pages if they felt obligated to describe every one of these, many of which are obvious on a very small amount of reflection.

                                            1. 1

                                              Exactly. Just think about it and use your brain, don’t expect everything served on the silver plate. If you wanted this checklist with explanations, it would be at least 200 pages long book.

                                      1. 7

                                        The snow melted and it’s 60F. I’m going to be outside as much as possible. Bike ride, yard work, building something in my garage workshop with the garage door open, etc.

                                        1. 5

                                          With the door open? Living the life!

                                          1. 2

                                            Indeed!

                                          2. 2

                                            What kind of stuff do you build in your workshop? :)

                                            1. 4

                                              The usual - fixes for the house, minor woodworking projects that I play around with, crackpot inventions that won’t ever work. The last thing I made was an electric shoe sole brush that actuated when you stepped on it - it manages to clean the shoe and in the process spray debris everywhere :). That was the prototype and was too large to be practical (if that’s even possible). I’m going to try and make a smaller one tomorrow.

                                              1. 1

                                                That’s a really cool idea. Care to share a photo with us? At least in my imagination you could probably contain the spray of debris with some partial enclosure.

                                          1. 4

                                            Ted Dzubia is a troll and his inflammatory and insulting articles have no business on this site. Also, given the worldwide popularity and utility of node, it’s safe to say he’s been proven wrong.

                                            1. 2

                                              Fun fact, he’s running for CA state senate now.

                                              I briefly interacted with him online during the heyday of Uncov, which was a bit like N-gate (neither which ever reach the heights NTK used to scale).

                                            1. 5

                                              Howdy - recovering generative artist here [0]

                                              Everything the artist says in this essay is correct. The lost connection between creator and observer hurts generative art. The art community is interested in emotional expression and connecting with the purpose of invoking something new and interesting. I wrote a long treatise about this some years back, attempting to coin the term Artificial Expression [1] (which is partially obsolete with the advent of deep learning but the overall point still stands).

                                              Sometimes I wish it weren’t true. Sometimes I wished that technically beautiful stuff was appreciated by everyone without that pesky emotional connection, but it’s not. The same goes for technically proficient photo-realistic artwork. People say “That’s cool” and then move on to something they can actually bond with on another level.

                                              But that’s important! It’s important because we’re humans and we suffer from the human condition. So the things that take us out of that plane and let us engulf ourselves in pure emotion is the best kind of art. We’re made a certain way genetically, culturally, and socially - and that’s the good stuff right there. Finding this for yourself as an artist is the most important thing. Once you get out of the rut of trite technicality and see the world for what it is, you’ll be better for it.

                                              [0] Shameless plug for some of my stuff- http://binarymax.com/tree.html , http://binarymax.com/randriaan.html , https://max.io/jewels24.html , http://binarymax.com/backgammon/

                                              [1] https://max.io/articles/theories-on-artificial-expression/

                                              1. 1

                                                So the things that take us out of that plane and let us engulf ourselves in pure emotion is the best kind of art. We’re made a certain way genetically, culturally, and socially - and that’s the good stuff right there.

                                                Do you have any data to support sweeping generalizations like this? How can this theory explain things like Gothic architecture that were created over decades by groups of craftsmen who were focused on mastering and practicing technique? Many of the stone masons did not know what emotional impact their work would elicit. Isn’t it more likely that “people say ‘That’s cool’ and then move on” when what you’re showing them is only that interesting?

                                                1. 3

                                                  I do not have access to a formal study that definitively defines captivating art. The accepted definition of art is communication of expression from a creator to an observer. I will take the opportunity to focus on your use of the term ‘craftsmen’. Craft is not art. Technically proficient craft is absolutely admired for what it is, but the lack of emotional connection or purposeful expression to forge that connection is why it differs from art.

                                                  1. 1

                                                    @binarymax, FYI, randriaan doesn’t seem to work in Firefox 63.0a1 (2018-07-09) (64-bit) on Windows.

                                                    1. 1

                                                      Hey thanks for the heads up - but I don’t have a Windows box so can’t debug. It works fine on my Firefox 61.0.1 (64-bit) in MacOS. Do you see any kind of error/warning in the console?

                                                      1. 1

                                                        Oh, it works if I click the link and open it in this tab. If I ctrl+click or third-button click to open it in a new tab, it doesn’t work, but then it does work when I ctrl+F5 to hard-refresh it.

                                                1. 3

                                                  I really like the premise of this, and the choice of test and scenario. But I’m a bit disappointed that nobody was caught. Some of these cheats are pretty obvious (the numbers printed on a soda can - really?). Did the proctors even try to catch anyone?

                                                  1. 4

                                                    During the exam, we sought to further increase the stress and realism by walking occasionally among the student desks. We didn’t try all that hard to catch students, but that wasn’t the point.

                                                    It sounds like it was a hands-on lab in the shape of a test. They weren’t testing the students’ ability to cheat; it was more to provoke discussion about how adversaries might consider cheating.

                                                  1. 3

                                                    Does this apply to (a) businesses with customers resident in California, (b) businesses incorporated in California with customers anywhere, or (c) businesses incorporated in California with customers resident in California?

                                                    This seems tricky to do at the state level and should be federal…Similar to how GDPR was EU level.

                                                    1. 4

                                                      California has a long history of setting a higher (per-state) bar on things like vehicle emissions and mileage, forcing companies to either build two of everything (“49-state” cars) or follow the stricter set of rules for everything – usually they decide to do the latter. California’s lawmakers are probably hoping this will go the same way, since GDPR led the way.

                                                      1. 2

                                                        It seems they’re doing it to get the ball rolling so to speak. Europe, now California, who next?

                                                      1. 7

                                                        meta: misuse of the ‘video’ tag, which is used to note whether the linked page is video content (this is an article)

                                                        1. 7

                                                          Ah good ole FOaaS! This brings back memories, as one of my greatest useless internet accomplishments was getting the Shakespeare route added. https://news.ycombinator.com/item?id=6069514

                                                          Nice little project, good example of a Go CLI. Thanks for sharing!

                                                          1. 2

                                                            Oh, so that was you. The Shakespeare one is among my top 10s

                                                            Thank you for your words. I wasn’t sure whether I should share this project or not but I have gotten really good feedback for it on reddit and now here. Means a lot and it just made learning Go more fun.

                                                          1. 2

                                                            Starting a text classifier and named entity recognition

                                                            1. 2

                                                              What tech stack?

                                                              I’ve used StanfordNLP’s NER on a project previously (we literally just needed NER and some date recognition, no sentiment/etc) and while we got it to work, the amount of work required to get it to a usable stage felt like overkill - it didn’t help that I had to delve back into java to get a usable http interface for it.

                                                              1. 2

                                                                If your looking for something better and non-java (with a more permissive license) I recommend checking out spaCy - https://spacy.io

                                                                API is a pleasure to work with and lots of really good NER comes with the pretrained models.

                                                                1. 1

                                                                  It was more of a general curiosity than a current requirement, but thanks for the reference.

                                                                2. 1

                                                                  I am doing NER with spacy, classification with tensor flow. I am also experimenting with prodi.gy a tool that is developed by the same guys than spacy and offer an easy interface to worwith. For now I still have some issues with my own word vectors (4M words) I have some buffer overflows that I do not yet understand.

                                                              1. 12

                                                                I would actually wait until GDPR to kick in before deleting Facebook, or any other online account for that matter, so that keeping user information even after a user has requested deletion is simply against the law.

                                                                1. 2

                                                                  I don’t think the fines for violating GDPR are large enough to make Facebook think twice about ignoring it. Short of dissolving Facebook and seizing its assets under civil forfeiture, no civil or criminal penalty seems severe enough to force it to consider the public good.

                                                                  1. 17

                                                                    don’t think the fines for violating GDPR are large enough

                                                                    Actually, they are very large:

                                                                    Up to €20 million, or 4% of the worldwide annual revenue of the prior financial year, whichever is higher [0]

                                                                    Based on 2017 revenue [1] of $40B, that’s $1.6 Billion Dollars

                                                                    But it’s not just the fines. The blowback from the stock hit and shareholder loss, as well as cascading PR impact, is a high motivator too.

                                                                    [0] https://www.gdpreu.org/compliance/fines-and-penalties/ [1] https://www.statista.com/statistics/277229/facebooks-annual-revenue-and-net-income/

                                                                    1. 3

                                                                      0.04 << 1 until you can quantify the cascading PR impact. It will not effect their day-to-day operations from an economic standpoint.

                                                                      I would be curious to know how many people have actually taken action on their FB usage based on the recent CA news outbreak. I am willing to bet it’s miniscule.

                                                                      1. 1

                                                                        1.6 billion dollars vs deleting the data of one user who wants to leave?

                                                                        1. 1

                                                                          The fines are per distinct issue (not number of people affected). If Facebook breaches GDPR with multiple issues, then Facebook could get hit by a large percentage of their annual revenues.

                                                                  1. 1

                                                                    If you’re in England go to the Boring conference this weekend! https://boringconference.com/

                                                                    1. 3

                                                                      The offhand ‘even perl’ in there struck me as unfair. It reminds me that perl is actually pretty fast (specifically at startup, but my recollection was also that it runs quickly):

                                                                      $ time for i in `seq 1 1000`; do perl < /dev/null; done
                                                                      
                                                                      real    0m2.786s
                                                                      user    0m1.337s
                                                                      sys     0m0.686s
                                                                      
                                                                      $ time for i in `seq 1 1000`; do python < /dev/null; done
                                                                      
                                                                      real    0m19.245s
                                                                      user    0m9.329s
                                                                      sys     0m4.860s
                                                                      
                                                                      $ time for i in `seq 1 1000`; do python3 < /dev/null; done
                                                                      
                                                                      real    0m48.840s
                                                                      user    0m30.672s
                                                                      sys     0m7.130s
                                                                      
                                                                      
                                                                      1. 1

                                                                        I can’t comment on how fast Perl is, but you are measuring the time taken to tear down here too.

                                                                        The correct way would be to take the raw monotonic time immediately before invoking the VM, then inside the guest language immediately print it again and take the difference.

                                                                        P.S. Wow Python3 is slower.

                                                                        1. 2

                                                                          but you are measuring the time taken to tear down here too.

                                                                          I guess so? I’m not sure that’s a useful distinction.

                                                                          The people wanting “faster startup” are also wanting “fast teardown”, because otherwise you’re running in some kind of daemon-mode and both times are moot.

                                                                          1. 1

                                                                            The people wanting “faster startup” are also wanting “fast teardown”

                                                                            Yeah, I guess I agree that they should both be fast, but if we were measuring for real, I’d measure them separately.

                                                                            1. 1

                                                                              I’m not sure that’s a useful distinction.

                                                                              If latency matters then it could be. If you’re spawning a process to handle network requests for example then the startup time affects latency but the teardown time doesn’t, unless the load gets too high.

                                                                          2. 1

                                                                            Hah before I read the comments I did the same thing! My results on a 2015 MBP - with only startup and teardown on an empty script, and I included node and ruby also:

                                                                            ~/temp:$ time python2 empty.txt 
                                                                            real    0m0.028s
                                                                            user    0m0.016s
                                                                            sys     0m0.008s
                                                                            
                                                                            ~/temp:$ time python3 empty.txt 
                                                                            real    0m0.042s
                                                                            user    0m0.030s
                                                                            sys     0m0.009s
                                                                            
                                                                            ~/temp:$ time node empty.txt 
                                                                            real    0m0.079s
                                                                            user    0m0.059s
                                                                            sys     0m0.018s
                                                                            
                                                                            ~/temp:$ time perl empty.txt 
                                                                            real    0m0.011s
                                                                            user    0m0.004s
                                                                            sys     0m0.002s
                                                                            
                                                                            ~/temp:$ time ruby empty.txt 
                                                                            real    0m0.096s
                                                                            user    0m0.027s
                                                                            sys     0m0.044s
                                                                            
                                                                            1. 2

                                                                              Ruby can do a bit better if you don’t need gems (and it’s Python 3 here):

                                                                              $ time for i in $(seq 1 1000); do ruby </dev/null; done
                                                                              
                                                                              real	0m31.612s
                                                                              user	0m27.910s
                                                                              sys	0m3.622s
                                                                              
                                                                              $ time for i in $(seq 1 1000); do ruby --disable-gems </dev/null; done
                                                                              
                                                                              real	0m4.117s
                                                                              user	0m2.848s
                                                                              sys	0m1.271s
                                                                              
                                                                              $ time for i in $(seq 1 1000); do perl </dev/null; done
                                                                              
                                                                              real	0m1.225s
                                                                              user	0m0.920s
                                                                              sys	0m0.294s
                                                                              
                                                                              $ time for i in $(seq 1 1000); do python </dev/null; done
                                                                              
                                                                              real	0m13.216s
                                                                              user	0m10.916s
                                                                              sys	0m2.275s
                                                                              
                                                                              1. 1

                                                                                So as long python3 is faster than ruby/node, we are ok…?