1. 3

    I just wanted to say that I appreciate the imagery used here. I understand that it doesn’t necessarily affect the technical merits of the argument (which I think is a good one), but it was a pleasure to read. Technical writing that is actively fun to read at the prose level is not common. I am reminded of James Mickens, @aphyr’s Hexing the Interview and Fred Brook’s essays on building castles in the sky.

    1. 2

      James Mickens

      A direct link must be offered: https://mickens.seas.harvard.edu/wisdom-james-mickens. His work is incredible.

    1. 5

      Adopting the Contributor Covenant

      I am not too happy about this. I believe that all users should be treated equally, but something about these recent CoC changes just destroys communities:

      https://meta.stackexchange.com/questions/334248/an-update-to-our-community

      Off topic, I see that you are the author of the linked post. I also see that you have more posts than comments:

      https://lobste.rs/u/ttaylorr

      Is it your intention to just use this platform to advertise for GitHub?

      1. 17

        I think codes of conduct are good. They’re important for making community norms explicit, and as tools to change community norms that are inappropriate. Both of these are important for marginalized members of the community.

        Something important to remember is the paradox of tolerance. If you’re willing to tolerate the intolerant, the intolerant will eventually turn the community into an intolerant community.

        The code of conduct that git has adopted is a pretty relaxed one. As long as you’re not a jerk you won’t even have to think about it.

        1. 10

          I’m not a CoC-fan either (though primarily because it implicates corporate professionalism (ala anti hacker culture) than freedom of speech issues), but I still wonder. What examples are there the “Contributor Covenant” in practice. When has it helped in ways that a simple “be kind and respectful” wouldn’t have?

          Also don’t forget that it’s this specific document that’s far more controversial than any self-written community guidelines or mailing list rules. I for example still don’t understand what’s so great about it specifically. You say it makes community norms explicit, but most of the time, it’s just a copy-pasted document from outside said community.

          1. 4

            While I think that code of conducts are probably a good thing, I don’t share your optimism about the Contributor Covenant.

            I admit I haven’t read the CC closely since a very early version[0], but what I remember of it was quite vague (perhaps this is what you mean by “relaxed”?). Moreover, its focus on “professionalism” thoroughly undermines its goals of inclusion, and (for people whom that isn’t reason enough) is counter to the hacker ethos.

            If you’re looking for a code of conduct similar to the CC, better (not perfect IMO, but much better!) examples include the Slack, Rust, and Django CoCs.

            [0]: which I really wanted to like, up until I suggested a minor clarification to the text and then was … promptly blocked by the author.

            [1]: Note: a one- or two- page CoC isn’t nearly enough space to make community norms explicit to the point where every decision to fire or censure a moderator won’t devolve into a flamewar (worse yet, it may invite exegesis). For comparison, the IWW—which wikipedia describes as an anarchist organization—has a process document that is about about 100 pages long. A CoC is not a process document.

            1. 2

              Thanks for the link regarding the use of the word “professionalism”. I’d like to note that the term is last in a list of stuff that’s example of what not to do, so it’s not front and foremost in the main text.

              I’d also like to note that the term “hacker ethos” is similarly coded, as “hacker culture” is historically coded male and privileged. If there are attempts to reclaim the term, I’d love to have some more information to read about that.

              I do agree that the CC is maybe a bit too brief, and not enough to prevent acrimonious rules-lawyering.

              1. 4

                “hacker culture” is historically coded […] privileged

                Is it? Before these excessive amounts of money poured into tech in the late 90s, being part of hacker culture implied a certain danger in general society, socially but also physically.

                (no argument on it historically being a male domain)

                1. 2

                  Re: the term “privileged” - up until the late 90s, just accessing a piece of computing machinery implied access to quite a bit of disposable income. I realize the word has more connotations than just material wealth, but it’s certainly a big part of it.

                  1. 5

                    I grew up in a western “working poor” situation and got my home computer in 1990. It was horribly outdated by that point, but computing access was one of these situations where “trickle down” actually worked because those with the money had lots of motivation to go with the latest and greatest and got to get rid of their stuff from last year. Two or three iterations later it became affordable for those who didn’t really have the money but the interest in pursuing the topic.

                    Sure, somewhere in the poorer parts of Africa or Asia widespread access to computing is still not a given today (although smartphones are making inroads), but that’s generally not what the people mean when designating others as “privileged”.

                    1. 4

                      Stepping back from a particular time period, “hacker culture” has a long history, and that history is mostly students at prestigious universities and colleges (MIT, Stanford). Now, not all of these students were personally affluent, but by attending these seats of learning they were privileged.

                      In the aggregate, it was easier to get involved in computing and hacking if you were part of an affluent milieu, or if you were not, was encouraged to study - and more importantly, had the opportunity to study, instead of for example, working for a living. Both contexts imply disposable “income” - either in money, or in the acceptance of opportunity cost in preparing a young person for higher education.

                      1. 3

                        Both contexts imply disposable “income” - either in money, or in the acceptance of opportunity cost in preparing a young person for higher education.

                        So Europeans (no matter their intersectionality in other aspects) are off the scale thanks to access to higher education being taken care of, for the most part.

                        If we collect some more of these properties that cover entire continents, everybody is privileged, rendering the term meaningless.

                        1. 4

                          Higher education in much of Europe may be gratis in regards to attendance fees, etc, but there are not enough places for everyone who wishes to attend them. So you still have a situation where more well-to-do are able to prepare their offspring for the competition of attending by extra study time, language study abroad, etc etc.

                          Anyway, I don’t think it’s productive to continue this discussion. We obviously have different meanings of the word “privileged”, and that’s where the rub lies. Thanks for taking the time to respond.

                2. 2

                  I’d also like to note that the term “hacker ethos” is similarly coded, as “hacker culture” is historically coded male and privileged.

                  Male yes, but I think irrelevant. Privileged, no.

                  It’s pretty tough to pin down a strict definition of “hacker ethos.” To me it means tinkering with computers and soaking in the culture of bbs and meetups and reading through books like Steven Levy’s Hackers [0] and stacks of 2600.

                  But I’m fairly young and there are many different experiences.

                  Historically, and currently, the vast majority has been written by males but I think the hacker ethos is not exclusive to non-males and the difference is around curiosity and knowledge sharing over anything gender-specific.

                  Note that I think it includes many characteristics of culture that aren’t specific to hacking.

                  But I don’t think the hacker ethos is privileged at all. It’s focus on low resource environments and DIY and sharing is as close to anti-privileged as you can get.

                  My own first experiences with computers was through a public school and library and I didn’t have access to computing resources for many years. MIT hackers were great, but they aren’t everyone. Visiting hackers in many countries shows similar tinkerers and low/zero resource learning systems. It was really neat meeting hackers in Kampala who grew up programming on raspberry pis, getting electricity through creative means because their home didn’t have the electricity grid.

                  So while there were certainly hackers with lots of resources, there were (and still are) many without privilege.

                  [0] https://en.wikipedia.org/wiki/Hackers:_Heroes_of_the_Computer_Revolution

              2. 3

                Codes of conduct should only be needed if and when bad conduct repeatedly and systematically occurs. I have never come across any such bad conduct in my many years of working on free software so I can only assume it is not wide-spread. It would be enlightening to see some examples of the bad conduct which led the Git project into adopting this code. If there are none they’re on thin ice in adopting it as far as I’m concerned, especially since these codes themselves often lead to strife.

                1. 6

                  Codes of conduct should only be needed if and when bad conduct repeatedly and systematically occurs

                  By that time it’s too late, the damage is done.

                  Much like political constitutions, it’s best to get these things in place before things get bad, and when everyone is on the same page.

                  1. 10

                    It’s possible that the way that you experience the world is not the way that marginalized people experience the world. And maybe we should be focusing on making it easier for them to contribute, rather than the people who are least marginalized.

                    Git is part of the larger open source community, and part of the larger computer science community, both of which have had many problems over the years. You can find many examples of this if you google “open source sexual harassment”. Linus Torvalds, who started the Git project, is famous for his abusive rants. When we’ve seen so many examples of fires breaking out in other similar projects, it seems sensible to get a fire extinguisher.

                    1. 13

                      Linus Torvalds, who started the Git project, is famous for his abusive rants

                      His rants were abusive in the regard of someone who he considered “dumb” at the time, or similar. To my knowledge he wasnt ranting at someone because of their race or gender identity. Do you have evidence to the contrary? Else it comes off as you slandering him, which I wont stand for.

                      1. 6

                        It’s possible that the way that you experience the world is not the way that marginalized people experience the world

                        I’m not sure it’s wise to tell random folks you likely never met (or in case of standardized documents: whole communities) that they’re not marginalized as if speaking from authority.

                        1. 2

                          Linus Torvalds, who started the Git project, is famous for his abusive rants.

                          I love Linus “rants” and they are not abusive, they just use colorful language, which is refreshing.

                          You can only interpret these texts as abusive if you are less than 12 years old.

                          1. 10

                            (the twitter link leads to a post in which SS calls Ted Tso a ‘rape apologist’)

                            Please note, I am not diminishing what rape is, and or any particular person’s experience. However, I am challenging the use of statistics that may be hyperbolic and misleading … – Ted Tso

                            That Ted Tso?

                            Throwing epithets does not a truth make. In this case Tso was called a ‘rape apologist’ but that does not make him one, it only means someone attached a label to him because he dared to disagree. Disagreement is not the same as bad conduct. Sometimes it can be solved by discussion, sometimes there is no solution other than acceptance of the fact that people disagree. Let it be, let them be, they have the same right to an opinion as you have.

                            (to make it clear, I realise that cup posted this link as an example of how these policies lead to strife)

                            1. 10

                              Remember the Halloween documents [1], Microsoft’s infamous plan to derail free software in general and Linux in particular? Just image what they would have been able to achieve by strategically calling out developers as ‘rape apologists’ and such.

                              Maybe someone did realise this after all? Identity politics is a potentially devastating way to break up communities, and many of these ‘codes of conduct’ can be traced back to this type of politics.

                              [1] https://en.wikipedia.org/wiki/Halloween_documents

                        2. 4

                          I am not too happy about this. I believe that all users should be treated equally, but something about these recent CoC changes just destroys communities:

                          I’m actually rather surprised that it all happened so quietly. I guess it was overshadowed by the RMS-situation.

                          1. 8

                            Me neither, identity politics - the basis of the contributor covenant - has no place in free software communities - or any other community for that matter. It only serves to create factions where none should be, it raises (often trivial) differences between individuals to their defining characteristics and uses those to split communities into groups, groups into hierarchies of oppressed and oppressors. To what purpose, other than to create strife? It is totally antithetical to the famous New Yorker cartoon of the dog-with-a-keyboard telling the world that “on the internet, nobody knows you’re a dog” [1].

                            Sendmail was written is and maintained by Eric Allman who was and is openly gay. He’s married to Marshal McKusick of BSD fame. Nobody cared. Nobody cares. That is how it should be and how it was, but that is not how it will be if identity politics really takes hold because Allman will find himself pushed into a certain slot (white [-10] middle-aged [-6] gay [+7] man [-10]) instead of just being known as ‘the guy who developed Sendmail’. Same for McKusick, Same for, well, everyone else.

                            The History [2] and Talk [3] section on the Contributor Covenant article [4] on Wikipedia is telling in this respect: criticism is silenced with a claims of ‘The situation is completely solved.There is no need for this outdated section’.

                            [1] https://en.wikipedia.org/wiki/On_the_Internet,_nobody_knows_you%27re_a_dog

                            [2] https://en.wikipedia.org/wiki/Contributor_Covenant

                            [3] https://en.wikipedia.org/wiki/Talk:Contributor_Covenant

                            [4] https://en.wikipedia.org/w/index.php?title=Contributor_Covenant&action=history

                            1. 3

                              New contributors can be assured that the Git community is behind this adoption with the introduction of the Code of Conduct, Acked-by 16 prominent members of the Git community.

                              … out of 1316 contributors currently listed on https://github.com/git/git.

                              1. 1

                                Thanks. I was trying to learn what such a vague statement meant.

                              2. 3

                                I also see that you have more posts than comments […] Is it your intention to just use this platform to advertise for GitHub?

                                All five posts are “Git highlights” blog posts. Nothing is specific to GitHub, other than their being hosted on GitHub’s blog.

                              1. 14

                                This is a great article. Not only does she share a well written retrospective on what she should have done better… she doesn’t let her mistakes define her. If she did, or was afraid they would, she wouldn’t have written this.

                                By writing this, she is able to grow from her mistakes, help people not make similar mistakes, teach others how to think through and do retrospectives… etc… but most importantly, she shows us by example that our mistakes don’t define our value as engineers or people. You learn, grow, and move on.

                                1. 3

                                  I also really appreciate the “(so far)” in the title, because, let’s face it — your worst mistake is only your worst until you inevitably commit a more egregious one.

                                1. 2

                                  What we want is information that explicitly splits the data into two. We don’t want something that can include both male and females, we want purity. One singular class for each split.

                                  ???? where even does this link to the text, other than the weirdly-included RuPaul’s Drag Race gif in the poorly formatted header above it? (and even then, why this particularly debated example of something that some people dispute is exactly two classes? there are way better binary classes!!)

                                  1. 3

                                    Being horribly blocked by brain fog, it seems :/

                                    1. 17

                                      Just donated $100 for that specifically. I really do profoundly hate software patents as an institution.

                                      1. 7

                                        Spurred on by your comment, donated $25!

                                        1. 4

                                          Donated as well. This “business model” is nothing less than extortion.

                                          1. 3

                                            Fiiiine enters payment info. This case could turn out to be a motivational one for other projects who will fight the same trolls.

                                            1. 1

                                              Good work. I have donated also.

                                      1. 7

                                        This is a fun list :)

                                        I’ve been using Go Mono for about a year now I think, and it’s been a real treat. I feel like ligatures are more of a personal opinion thing than a legibility thing, but I really like them.

                                        1. 4

                                          When Go Mono came out I switched and never back. Sublime.

                                          1. 3

                                            Was on iosevka term slab (another serif font), but I’m digging go mono.

                                          1. 2

                                            Given the title, I expected a rant. Was very pleasantly surprised at the content. I appreciate the format of “here are a bunch of mistakes I’ve made, maybe this will help you avoid some of them.”

                                            1. 1

                                              Absolutely; this is a nice change from some of the more inflammatory content lately from Drew which has really rubbed me the wrong way (which is neither here nor there). Really love that this post combines humility with a gift of lessons learned in code form!

                                            1. 3

                                              The audio tag means it’s supposed to be an audio link right? Different color, same color as pdf tag.

                                              1. 1

                                                Oh, you’re right. I assumed it meant audio-related stuff. It’s not letting me suggest it get removed. Mind doing that for me?

                                                1. 2

                                                  It is done!

                                                  1. 1

                                                    Thanks!

                                              1. 1

                                                PAX Australia! 2 days down already, it’s been fun.

                                                1. 6

                                                  I just use Things. I have no plan to move away from Apple jail ecosystem in the foreseeable future so…

                                                  1. 3

                                                    I also use Things, just on my laptop though (I keep my phone off of email, calendar, etc.).

                                                    Past monday the macOS Catalina update rendered my Macbook unbootable (sent to apple repair yesterday). In the meantime I’m running a live Ubuntu bootable thumb drive.

                                                    While Things is not available off-Apple, it’s nice they store everything you do in a single SQLite database file. Until I have my Macbook back I’ll be running Things with a SQL editor.

                                                    1. 1

                                                      Past monday the macOS Catalina update rendered my Macbook unbootable (sent to apple repair yesterday).

                                                      Same. Booted in safe mode, turned out it was a bad kext. Updated it and chugging along happily-er now.

                                                      1. 1

                                                        Mine doesn’t even respond to the boot time keystrokes in order to boot in safe mode, or verbose, or boot from a thumb drive…

                                                        I tried everything, but there’s nothing I could do without tearing it down.

                                                        May I know your model? Because a friend of mine also had his install broken. Also, is the bad kext related to Little Snitch? Thx.

                                                        1. 1

                                                          MacBook Pro (15-inch, 2017) – the bad kext was a corporate MDM thing (“Carbon Black”). But yikes, yours sounds muuuuch worse. I could access safe mode. Recovery was working but even once booted into recovery the dialogs were lagging for 5+ minutes.

                                                    2. 2

                                                      Things

                                                      This comment made me check it out, and damn. I’ve been using Todoist for a couple years and this blows it out of the water. Thanks!

                                                      1. 1

                                                        +1 for Things. I have a soft spot for the idea of a bullet journal but Things is just so good.

                                                        1. 3

                                                          Things is the only software I’ve ever missed after leaving apple.

                                                          1. 1

                                                            I have a mac laptop, but an android phone, so I would be hesitant to use Things.

                                                      1. 0

                                                        Yellow title. Water in article.

                                                        1. 1

                                                          What does this mean?

                                                            1. 1

                                                              Ah, thanks! Not a term I’d heard before.

                                                          1. 12

                                                            This project would be built with a microservices architecture

                                                            Why? I don’t see a rationale for this anywhere in the article.

                                                            A “microservices architecture” is almost never a good idea. What possesses programmers to believe that if maintaining one system is hard, maintaining several would be easier? Or that network calls are less complex than function calls? Even among people who actually like this approach for some strange reason, anecdotally I’ve only heard tales along the line “oh yeah, I just use some microservices for simple things, like postcode validation”.

                                                            …Because that’s somehow easier than using a library? 😐

                                                            1. 12

                                                              Looking back, we thought the tasks running part was a logical place to split the code. It was also the “new idea” that others had had success with internally. We got nerd-sniped.

                                                              1. 4

                                                                The main (only?) valid rationale I can see for microservices is when the services need to be reused and composed in different ways to solve different problems (particularly when the services manage their own state). Splitting a logically singular app into services just for fun is, in practice, no fun at all.

                                                                1. 2

                                                                  That’s interesting. Genuinely curious — because I’m drawing a blank personally — could you give an example of when a part of a system should maintain its own state, and when that state should not be adjacent to, i.e. in the same database as, the core system state? And why would this be different from a monolith collaborating with multiple databases?

                                                                  1. 4

                                                                    I can’t go into specifics of the main example I’ve seen in practice, but the way I (perhaps incorrectly) think of microservices is as islands of independent functionality. There is no ‘core system state’; if you want to know something, you have to ask the service responsible for it. The services can then be part of different independent business flows with minimal spillover effects.

                                                                    Lets say you have an interactive business flow that involves a user going through a series of processes (A, B, C, D) in a mobile app. A ‘gateway’ service provides an API for the app and orchestrates calls to internal microservices A, B, C and D that provide specific functionality. The gateway might know where a user is up to in the flow, but will rely on the services to manage the state related to their part of the process.

                                                                    Another gateway API could be written for a batch process that progresses through processes B, D and E. Changes to either flow are less likely to impact on each other, particularly if the service boundaries are well thought through.

                                                                    Of course you can do this in a monolith with different endpoints for different clients/flows, but that can get messy unless you’re quite strict about how you structure your code and data. it’s easy to tweak something in your ‘user’ flow and accidentally break something seemingly unrelated in your ‘batch’ flow.

                                                                    I’ve worked on another system where microservices used essentially the same data store, with some logical partitioning. Over time, the partitions got thinner and thinner and the boundary between services less and less clear. We ended up collapsing it back into a monolith because there was no gain (and a lot of pain).

                                                                    1. 3

                                                                      In my department, we ended up with a microbased service kind of by accident (it was how the work was initially divided up by different departments, only to end up in one department). It worked out for us because it broke the front end (accepting requests for service) from the backend (the business logic) so when we needed to support a new front end (original front end talks SS7, new front end talks SIP) it was easy enough to write. It also allows us to make updates to the business logic without disrupting exiting connections with our customers (very important with SS7).

                                                                      1. 2

                                                                        The natural example is something like Auth0 before Auth0 itself existed. Centralizing your authentication and authorization so that users could have a single login to all your stuff. Then you can have public APIs, websites, or native apps and have authorization work identically.

                                                                        1. 1

                                                                          Right, but why does that need to be a separate system? Why would that not work as part of a monolithic system?

                                                                          1. 2

                                                                            The need arises when you have multiple products and they use some common functionality, and the multiple products could have independent scaling needs. For instance, imagine Gitlab with VCS, CI, Issue Tracking. You’d want someone to be able to login from each into the same account, you’d want to be able to scale or improve your login system independent of Issue Tracking, etc.

                                                                            It’s just separation of concerns in a way that gives you independent scalability, updatability, reusability, etc.

                                                                            1. 2

                                                                              That makes sense, but I think the discourse in this area typically forgets what cost this approach has, and whether or not it’s genuinely financially appropriate for the business adopting it.

                                                                    2. 3

                                                                      Why? I don’t see a rationale for this anywhere in the article.

                                                                      I don’t think the author was defending the decisions per se, hence

                                                                      Those of you who have been down this road before probably have massive alarm bells going off in your head.

                                                                      and

                                                                      The second lesson is that making something microservices out of the gate is a terrible idea. Microservices architectures are not planned. They are an evolutionary result, not a fully anticipated feature.

                                                                      1. 1

                                                                        Sorry, I don’t mean for this at all to be an attack on the author. But to address the quotes you pulled:

                                                                        Those of you who have been down this road before probably have massive alarm bells going off in your head.

                                                                        This does not suggest the author has herself been down this road before.

                                                                        The second lesson is that making something microservices out of the gate is a terrible idea. Microservices architectures are not planned. They are an evolutionary result, not a fully anticipated feature.

                                                                        Again, this does not suggest that the author was not aware of this being a terrible idea before embarking on it (and I recognise she was part of a team). I believe my perspective is reasonable, given the use of the word “lesson”, suggesting she learned from this experience.

                                                                        1. 5

                                                                          I, for one, would like to read more posts which describe a project’s failure points and lessons learned. There’s too much focus on “look at how awesome we are” and “we implemented this shiny new thing and it’s great” in tech.

                                                                          1. 3

                                                                            I had not been down that road before the failed project in question, no.

                                                                      1. 5

                                                                        I’m curious, at some point OP writes:

                                                                        The task execution layer worked perfectly in testing, but almost never in production.

                                                                        Why not testing with production data first?

                                                                        1. 7

                                                                          We did! It worked beautifully in testing. Even with the things that failed in production!

                                                                          1. 4

                                                                            It’s more common the issue is with production infrastructure differences rather than just data.

                                                                          1. 43

                                                                            I would guess that a very substantial proportion of the people who read Lobsters have heard of Timsort.

                                                                            1. 22

                                                                              That, and TimSort really only makes sense in certain situations:

                                                                              • Comparisons have to be extremely expensive. Think dynamic dispatch. This is because TimSort itself performs a bunch of branches and integer comparisons to keep track of galloping scores and the stack invariant.

                                                                              • You need a stable sort. If you don’t need a stable sort, pattern defeating quicksort will probably do better.

                                                                              1. 11

                                                                                Quicksort is the Achilles of sorting algorithms: unbeatably fast, easy to implement, in-place; but with the vulnerable heel of bad worst-case performance (the worst case being pre-sorted data in the naïve implementation) and instability.

                                                                                1. 5

                                                                                  There’s a fairly easy fix to that, called introsort: start with quicksort, but bail out to a guaranteed O(n log n) sort like heapsort if it takes too long. In the bail-out case, you lose constant-factor performance compared to if you had used heapsort in the first place, but you avoid quicksort’s O(n^2) worst case, while still getting its good performance in non-pathological cases. It’s used in practice in .NET and some C++ STL implementations.

                                                                                  1. 3

                                                                                    Quicksort -> Heapsort is method I used. It worked fine in practice. I love solutions like that. Another, unrelated one was sklogic’s trick of using a fast, dumb parser first to see if it’s correct. If it wasn’t, he switched to one that made error messages easier.

                                                                                    I bet there’s more of this stuff waiting to be found for situations where people are shoving every case into one algorithm.

                                                                                2. 4

                                                                                  Comparisons have to be extremely expensive. Think dynamic dispatch.

                                                                                  That explains why Python uses it as it’s standard sort.

                                                                                  1. 9

                                                                                    Yeah. That’s exactly why Python uses TimSort.

                                                                                    More tellingly, where Rust uses an algorithm that’s related to TimSort for its stable sorting algorithm, they didn’t implement “galloping” because it’s not worth it. https://github.com/rust-lang/rust/blob/7130fc54e05e247f93c7ecc2d10f56b314c97831/src/liballoc/slice.rs#L917

                                                                                3. 10

                                                                                  I consider myself relatively knowledgeable about many different topics of CS and had not heard of Timsort until this article. What’s the point of your comment? That the article is not worth posting as you presume that it is widely known?

                                                                                  1. 4

                                                                                    The point is that the title of the article, and of this submission, is inaccurate. I would call the title clickbait because for most readers, the article doesn’t deliver what it promises – a sorting algorithm “you’ve” never heard of. I think the article itself is fine; it’s just the title that is a lie.

                                                                                    1. 5

                                                                                      That seems to be a really low-value comment. For whom is the remark actually intended? For other crustaceans to look at, nod and agree, thinking, “yes, I too possess the superior knowledge”? Does every submission with a title that invokes “you” need to be correct and ‘deliver on its promise’ for all possible “you”s? C’mon.

                                                                                      1. 4

                                                                                        Yes, I suppose jgb could have been more explicit in why they brought up their guess. (I wrote an explanation of my interpretation of the comment, not the original comment.)

                                                                                        Does every submission with a title that invokes “you” need to be correct and ‘deliver on its promise’ for all possible “you”s?

                                                                                        I think every article with a title that invokes “you” needs to be correct and ‘deliver on its promise’ for the majority of possible “you”s in its audience. If a title says “you’ll love this” and most readers don’t love it, the title was wrong, and it wasted people’s time by getting them to open the article on false pretenses. It is up to article authors to adhere to that principle or not.

                                                                                        As for titles of submissions of articles with clickbait titles, there can be a conflict between submission titles that reflect the author’s intent and titles that accurately describe the article. I don’t have a simple answer as to when submission titles should differ from the article title.

                                                                                        1. 3

                                                                                          I think every article with a title that invokes “you” needs to be correct and ‘deliver on its promise’ for the majority of possible “you”s in its audience.

                                                                                          I think I agree with this, and I think my concern comes down to disagreeing instead with the notion that the majority(/“a very substantial proportion”) of Lobsters readers have heard of Timsort. Short of a poll there’s not an actual answer to that; I just felt particularly rankled because I hadn’t, and presumably if I had I wouldn’t have bothered or thought to comment myself.

                                                                                          I err on the side of preserving the article title in the submission, which I think is pretty common. Accordingly, I think most Lobsters are primed to see submission titles that aren’t necessarily addressing them as Lobsters readers, but in some context that might be quite removed.

                                                                                  2. 2

                                                                                    I thought it played a pretty big role in the Oracle vs. Google lawsuit too, making it one of the more famous algorihtms.

                                                                                    However see “rangeCheck” mentioned a lot, which is a trivial part of TimSort.

                                                                                    https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.

                                                                                    Here it seems to cite TimSort. But for some reason I can’t find a lot of sources that talk about TimSort and the lawsuit, even though at the time I remember it being a prominent thing.

                                                                                    https://forums.appleinsider.com/discussion/149435/google-engineers-defend-source-code-email-in-oracle-lawsuit-over-java/p4


                                                                                    edit: here’s another one mentioning TimSort and the lawsuit.

                                                                                    https://majadhondt.wordpress.com/2012/05/16/googles-9-lines/

                                                                                    Googling “rangeCheck timsort lawsuit” digs up some results.

                                                                                  1. 2

                                                                                    Super in-depth, with integrated spaced repetition. I like that the goal of the essay is to help you grok the concepts at a fundamental level, not just by blithely laying everything out in order, instead leveraging intuition to build core concepts additives.

                                                                                    1. 4

                                                                                      Yes, we are literally overwriting parts of the compiler itself, at runtime, from our script. Welcome to Lua!

                                                                                      Super enjoyable, and nice to see someone actually working with Terra. I played around with it years (!) ago but never got to the stage of using it for anything useful. Here, clearly, is someone who tried, and maybe even succeeded.

                                                                                      1. 21

                                                                                        I’m not sure of what the purpose of this post is. The only information it seems to contain is “the rust compiler uses too much RAM (for example compared to Go) when compiling a 1e6LoC main”, formatted in a very irritating way. No insight as to why, or if it is a pitfall that may be an issue in actual use case.

                                                                                        Also, you’re comparing to V, but last time I checked, V was nothing but unbacked claims.

                                                                                        1. 13

                                                                                          I’m not sure of what the purpose of this post is.

                                                                                          Seriously though, what’s the point of anything?

                                                                                          1. 7

                                                                                            Exactly! Do things have to have points?

                                                                                            1. 3

                                                                                              Seriously though, what’s the point of anything?

                                                                                              I sincerely hope more people do things without there being a ‘point’ to them. Not everything we do has to produce a useful widget, and you never know where random exploration of the space of [the universe of all experiences] where it intersects your abilities might go.

                                                                                            2. 6

                                                                                              Also, you’re comparing to V, but last time I checked, V was nothing but unbacked claims.

                                                                                              To me this was clearly a joke, and probably a reference to the author’s other article titled “V for Vaporware”.

                                                                                              Anyways, the post was okaay in my opinion. It presented a story, and an interesting outcome. I hate the formatting as much as you do, but I appreciate the information that I got from it, which is that Rust and Go with this example were worlds apart when it came to compilation speed.

                                                                                              Unless we’re gonna pay the author I see no reason for us to decide how insightful their articles should be, and it certainly still fits here regardless of that.

                                                                                              1. 5

                                                                                                I was in the middle of making a comparison with multiple languages, but we got nerd sniped by rust ooming the biggest systems some friends and I all had. Then a friend broke out the x1e.32xlarge (4 TB of ram) and it still oomed. I was laughing so hard I yolo’d it and published it as is. I plan to do it for other languages at some point in the future (2-3 months from now).

                                                                                                1. 2

                                                                                                  haha fair enough, I actually liked how verbatim it was by the way! only the aesthetic of the tweets put me off.

                                                                                                  I plan to do it for other languages at some point in the future (2-3 months from now).

                                                                                                  looking forward to see the results:)