1. 3

    Adding preferences and config options have costs that this post doesn’t acknowledge. The blog post “Choosing our Preferences”, from 2002, explains those costs from the perspective of a GNOME developer. Someone else’s blog post “The GNOME Way”, from 2017, summarizes it thus:

    The key lesson: preferences have a cost. A usability cost, an engineering cost, a QA cost. They result in software that isn’t inclusive. They decrease the engineering quality of the software. They put responsibility for the experience in the user’s hands, whether they want it or not.

    This is not an argument for never including options, but it is an argument for being careful about which options are supported.

    1. 6

      The “Example Driven Development” technique described is similar to Readme Driven Development.

      1. 1

        Interesting, my kinda-popular library has a really extensive README, because I think it’s really important to give people a good overview of what the library does and does not, what the design principles are and what’s the rationale behind certain decisions.

        Still, I stopped counting the number of people suggesting/demanding I add their special config option who have very clearly not read the design goals section of the README.

        Only thing worse are the people who fork the library, change things around (usually because they haven’t spent the necessary time thinking about what their change actually means), add a “2” to the original name, and publish it without updating the README.

      1. 4

        Rails has a lot of advantages, especially for smaller teams. It’s a incredibly powerful and fast way to standup a web app.

        However, in my experience, once the size of the tech department grows you can definitely experience pain. Call back hell, return type mismatches, etc.

        These problems seem to really arise when the app gets too big for individuals to keep in their head.

        That said it’s still the first framework I go to for side projects that are web apps.

        1. 8

          Your woes make you the exact target audience for his new book: Sustainable Web Development with Ruby on Rails. No, I am not affiliated, but I did work with him at Stitch Fix, and he knows what he’s talking about and has done it. I haven’t read the book, though I want to, and feel I’ve already been a part of success at this.

          1. 6

            (For anyone who is confused, “he” and “him” in the parent comment refers to the author of this blog post, who also wrote that book.)

            That book looks pretty useful. The 50-page sample PDF is worth reading even if you can’t afford the whole book. From the sample chapter “Business Logic (Does Not Go in Active Records)”, I learned how and why to create a service layer in a Rails app. And from the sample chapter “Jobs”, I learned that Active Job may not be worth its complexity in apps (as opposed to in libraries), and learned of some bugs to avoid when writing jobs: actions may happen twice due to retries after partial failure, and relevant code may be skipped due to data changes between job retries.

        1. 13

          I don’t have an overall positive opinion of RuboCop or zealous linting in general, but, @tomdalling, I don’t see why you, or anyone who feels similarly, wouldn’t just customize the cops/rules for whatever project, and move on. Is this article a complaint against the chosen defaults? RuboCop’s authors wouldn’t be able to satisfy everyone; no matter what default they chose for any given style preference, there’ll be some set of people that don’t agree. I think it’s okay for them to have chosen whatever defaults they wanted, since, for the most part, they provide a lot of flexibility for adjusting or omitting cops/rules.

          1. 6

            I don’t see why [the author would write this article.] Is this article a complaint against the chosen defaults?

            No. The article is a complaint about a perceived culture of developers obeying RuboCop rules too fanatically. The article promotes the idea of disabling or reconfiguring RuboCop rules that make code worse in practice.

            I learned that from the Disclaimer/Conclusion section at the end of the article. I do think the article would have been clearer if it had started with that message.

            1. 2

              The disclaimer section being the main focus of the article would have made it much much better in my opinion rather than being relegated as a footnote. People need to realize that as developers we have tools to get our job done but they are just that, tools. If a tool doesn’t serve our purpose it is 100% within our right as professionals to not use that tool in favor of doing the right thing especially in cases where the tool actually makes the end product worse. The disclaimer is a MUCH more interesting topic than the complaint about a single RuboCop rule but I think its lost in the minutia of the rest of the article.

              1. 2

                I think the value of Rubocop isn’t the zealot-ness but instead the set of consistency it applies, which I think refutes @tomdalling’s point entirely.

                If you don’t like the rules, you can change them , that is a major feature of Rubocop.

                The specific example he used, I actually disagree with, and think the cognitive load, and clarity of what Rubocop recommended is far better than what he was initially wanting to write. So in the a parallel universe where @tomdalling and I are on the same team, I’m writing code one way, and he’s writing code another, and that is exactly why Rubocop is a good thing, these differences are not only brought to the forefront, they are discussed and decided on and whether you disagree or agree, you both end up agreeing that consistency is worth more than either way, and then Rubocop polices that decision.

                To me this is a tabs vs spaces kind of discussion, and my answer is: I mostly don’t care, but definitely not both!

                1. 4

                  Is it better to be consistently less readable, or inconsistent but more readable? What if it only drops you from being 90% consistent to being 85% consistent? Why are we not 100% consistent? Shouldn’t we always use hash rockets instead of colons? Why do we use both normal and postifx conditionals, both if and unless, when it would be more consistent to only use it one way?

                  Rather than refuting my point, I think you’ve actually given an example of it. I don’t think we should try to be consistent for the sake of being consistent — consistency for the consistency god, cops for the cop throne. We should be consistent to the extent that it provides benefits. Anything else is cargo culting. That was my point.

                  1. 1

                    Your whole point was around readability, and understanding, and how rubocop spoils it. But Consistency of style is a major factor to readability (more major than explicit/implicit nil, or guard expressions).

                    If I’m misunderstanding your point, I apologise, but are you stating that inconsistency is sometimes a benefit? I don’t think I’ve ever experienced that, nor heard that position expressed.

                    All of those questions you raise, are exactly the kind of questions you should raise, and decide as a team what to do. Use linting to raise awareness of these decisions, don’t follow it slavishly. Think: “Do I like implicit nil… no, so lets lint against that”, and then the team can move forward, and when a new member joins and the linting fails on their first commit, you can have the discussion again, and even change your mind. Raising team awareness is rarely a bad thing.

                    1. 3

                      That’s sort of but not exactly what I meant.

                      Everyone knows that RuboCop can make code better. It wouldn’t exist otherwise. But not everyone knows that RuboCop can make code worse, too. Lots of people see it as purely positive, with no tradeoffs. If you believe that, then you should enable all the cops and never turn them off. I wanted to show that it doesn’t work like that.

                      It’s the same with consistency. Some people view consistency as purely positive, with no tradeoffs. Everyone knows that it’s good to be consistent, but not everyone knows that it’s bad to be over-consistent. We already understand this intuitively, which is why I asked about hash rockets and all the different ways that Ruby provides to write conditionals, but we’re not always conscious of it.

                      Think about it this way. Let’s imagine that Hammer Man has a hammer, and he uses it consistently. Need to drive in a nail? Hit it with the hammer. Need to break a rock? Hit it with the hammer. Need to cut some wood? Smash it apart with the hammer. Need to beat some eggs? Stir them with the hammer. Need to turn off the TV? Throw the hammer at it. That’s consistency. He might look at his neighbour who uses a saw, a whisk, and a TV remote, and think that they are being inconsistent. They have to learn all these different tools, and the tools cost money, and they take up space in your house, when a simple hammer could have been used instead. That’s all true, but the mistake is in thinking that consistency is always good, and inconsistency is always bad. Hammer Man is being over-consistent, which is bad, and the neighbour is being adequately inconsistent, which is good.

                      You can draw parallels between Hammer Man and the way that developers use linters. Now that I think about it, and if I were to be cheeky, I might draw parallels between Hammer Man and people who really like Golang.

                      1. 2

                        Hashrockets? Here’s my anecdote: rubocop says you should be consistent and choose one of foo: bar or :foo => :bar for your codebase (I think it defaults to the former). This is fine as general advice for application code, until I start getting PRs for my rake task dependencies that rewrite them from

                        task :default => [:html]


                        task default: [:html]

                        The entire point of this notation is that there’s an arrow from the task name to the dependencies. The fact that this evaluates as a single-key hash from a keyword to a list is … incidental: if that syntax instead resulted in the creation of a Proc or an anonymous class or a giant mecha arthropod, I suspect that Weirich would have done his level best to work with whatever that thing was, to get the list of dependencies out of it. But (the unthinking application of) Rubocop has resulted in completely missing the point

                        Yes, you can turn it off or change the defaults or ignore the warning (unless rubocop is gatekeeping your CI builds) but the point is that it creates a presumption in favour of the “wrong” notation that senior developers (or, I suspect, just old developers in general) now have to spend their time working against.


                        1. 1

                          Yep, that’s the spirit of what I was getting at. The developer writes it a certain way then RuboCop changes it for the worse because it can’t know the original intent, which has both technical costs (worse code) and social costs (time wasted, pissed-off devs).

                        2. 1

                          I think I agree with the point you are now making.

                          Though your analogy is wildly inaccurate.

                          If we are talking Rubocop: Everyone on the team is already using ruby, so they’re all Hammer Man already. So really you are deciding on techniques of using a hammer (by your analogy), not anything to do with other tools.

                          • Banging things in with the handle is bad, don’t do that.
                          • Use the back for pulling out nails.
                          • Use the front for hitting things.

                          This kind of consistency is always good, and there is no such thing as over consistency in this context.

                          1. 1

                            It wasn’t an analogy, it was a parable that shows there is such a thing as being too consistent.

                            If we’re talking about Ruby being analogous to a hammer, then there would be a RuboCop cop that bans the use of the claw because it’s not good at hitting things, and if you want to use the claw to pull out nails people will complain about how using two different sides of the hammer is not consistent, and it’s best practice to only use the front side.

                            There is such a thing as over consistency in this context — like only using one side of the hammer. I just don’t understand this desperate need devs have to treat consistency like some divine, flawless god that can never be wrong and can’t be questioned.

              2. 1

                It is explained at the bottom. I think this is a case of complaining about the article without having actually read the article. We all do it sometimes :)

              1. 2

                I looked into porting this to macOS since the article said there was no port yet. However, after looking at macOS’s built-in Polish keyboard layouts, I’m not sure this modified layout is necessary on macOS. Since macOS has different meanings for (and placement of) the modifier keys, macOS’s “Polish – Pro” keyboard layout uses the Option keys (the equivalent of the Alt keys) to switch layers for typing ł, ó, etc. These Option keys are on both sides of the keyboard, so your left hand can hold Option while your right hand types keys.

                As well as the “Polish – Pro” layout, macOS also provides a “Polish” layout that makes changes such as binding the characters óżłą to dedicated keys and making the characters śńćź available via the Shift key rather than Option. (To type the uppercase versions ŚŃĆŹ of the Shift key characters, you have to hold Option as well.)

                Anyway, if anyone wants to customize their keyboard layout on macOS, to implement PL-Lefty or any other keyboard layout, I recommend the following GUI: Ukelele (source code). It’s been 13 years since I used Ukelele to create my own modified U.S. keyboard layout, but I think I remember it being easy to use.

                1. 48

                  To whomever downvoted this as off-topic:

                  • It’s about cryptography, security, and privacy
                  • The source code examples are written in JavaScript

                  …so which topic is it off-?

                  1. 34

                    It’s probably an expression of political distaste for overt references to furrydom rather than an authentic opinion that this article’s content is off-topic. I think this is absolutely topical content myself, but I’ve seen plenty of articles posted that I also thought were entirely topical (some of which I posted myself), that had off-topic or other flags because they were triggering to the political sensiblities of other users.

                    1. 48

                      Just posting in support of this.

                      Folks, this is a nice high-effort post about implementing security, with code and references and the whole shebang. It isn’t shilling a service, it isn’t navel-gazing on politics, it isn’t even some borderline case of spamming a blog to get more views without care for the community.

                      Anybody who flagged this as off-topic either didn’t read the article or is a tremendous asshole.

                      Anyone who flagged this as spam either didn’t read the article or is a tremendous asshole.

                      If the reference to furries in the title rustled your jimmies, despite the site policy here being to use the original title as close as possible, and you were unable to evaluate the quality of the article on its own merits, you’re a tremendous asshole.

                      1. 23

                        I get off topic downvotes for my posts with Mara too. Some of the graybeards here really dislike furries for some reason I can’t comprehend. I hope they can find something better to do that downvote furry adjacent content. Anyways, keep up the good work!

                        1. 44

                          I’m that kind of a person, though I don’t have a gray beard. To me it’s just cringe (for lack of a better word), just like an unironic “euphoric” atheist, a gun-obssessed anarcho capitalist, a “My Little Pony” Fanboy or a western-anime otaku. I honestly don’t see what the difference is.

                          Any blog that tries to mix that kind of usually fringe subculture is fine by itself, people are strange, but I have my doubts how relevant it is to a general-public site like Lobsters.

                          That being said, I didn’t flag it, I’ll just be hiding it.

                          1. 15

                            Setting aside how cringe or not it is, we should evaluate the article on its technical merits.

                            1. 13

                              In principle, yes, but we often have discissions on the form of sites (don’t post twitter threads, avoid medium, not loading without JS, too low contrast, automatically playing videos), and interspersing a page with furry imagary is just something that some people are used to (apparently this is an american thing), and others are not.

                              1. 5

                                It’s not an American thing.

                                I don’t know why you think it is.

                                Eurofurence, Nordic Fuzz Con, and FurDU are just a few of the international furry conventions that attract thousands of attendees every year (COVID notwithstanding).

                                1. 13

                                  Honestly that comes of as saying that McDonalds isn’t an american thing, because they have joints all over the world. Have you ever wondered why we are writing in English? I think everyone knows that american culture has a kind of dominance that no other culture has, because of hollywood, TV series and media in general. It’s always the de facto standard, and almost anything that is a thing in the US has following somewhere else. That has only intensified with the internet. But if anywhere in this thread, this is the point where we would be crossing over into off-topic territory, so I’d sugest we agree to disagree.

                                  And regarding

                                  I don’t know why you think it is.

                                  First of all, Wikipedia says

                                  The furry fandom has its roots in the underground comix movement of the 1970s, a genre of comic books that depicts explicit content.[5] In 1976, a pair of cartoonists created the amateur press association Vootie, which was dedicated to animal-focused art. Many of its featured works contained adult themes, such as “Omaha” the Cat Dancer, which contained explicit sex.[6] Vootie grew a small following over the next several years, and its contributors began meeting at science fiction and comics conventions.

                                  So it literally comes from the US. But setting that aside, even if I didn’t know that, it’s something so inherintly american, that I would have been really suprised that something that at the same time desexualizes bestiality (by removing the inherent link) and sexualizes animals (by giving them human cues of attractivness and anatonomy) could come from anywhere else.

                                  Edit: Also I was curious and looked it up, “Nordic Fuzz Con” has 1499 atendees in 2020, but considering how many contries these people came from, it’s approximatly 0.000008% of the population. It’s common that when people are too online, they overestimate how large their bubble really is. “Eurofurence” with almost twice as many atendees isn’t much better of.

                                  1. 0

                                    That’s super off topic for the discussion, but I’ve recently changed my mind about “american culture”. I now feel that a significant part of it is just universal, liberal culture, and not specifically American (hamburgers, pizzas and sushi being fun gastronomical examples). This post changed the way I think about this.

                                  2. 2

                                    I don’t know why you think it is [an American thing].

                                    Probably due to mako’s comment, which said they “always considered it an American subculture”. I hadn’t heard of it being American before… thanks to your comment I’ll unlearn that.

                              2. 11

                                Lobsters is general public? :-)

                                I think you could tack on just about any group and the content would be pretty much the same. “…for punks,” “…for people with a pulse,” or whatever. I’ve no strong opinion on furries. As long as their hobbies are not hurting anybody, I’ll just file it in the “not my thing, but not hurting me” bucket and see if the rest of what they have to say is interesting or not.

                                1. 9

                                  Technology doesn’t exist in a vacuum. Practitioners, users, researchers, and creators are people whose experiences of technology will be informed by their lifestyle preferences, race, gender, queerness (or not), positionality in society, past experiences, mental health, hobbies, friends and so on.

                                  It’s ridiculous and downright depressing to me that anyone would consider a blog off topic because the writer chose to make their technical narrative their own. It strikes me as the kind of narrow thinking that leads the tech industry to not be a very accessible or diverse place in general.

                                  Divorcing technology from the real world leads to isolation and atrophy (to borrow the words of Courant). It reduces diversity, leads to moral atrophy, and systems built without empathy for users.

                                  And it leads to gatekeeping. Don’t do that.

                                  1. 7

                                    The cringe is a reaction of your own, not the content itself. I would avoid downvoting a post just because of my relationship to it, so I’m glad you made the same call.

                                    1. 9

                                      Lobste.rs caters to a very specific subculture that exists in the IT sector that is in itself part of a broader subculture of technology creators and maintainers. It’s just that you think your subculture is important enough to be let in and others are not.

                                      1. 10

                                        You’re right that “technology” is a subculture, but my claim is that we are perpendicular/stochastically independent to “furry culture”.

                                        It’s just that you think your subculture is important enough to be let in and others are not.

                                        I would very kindly ask you not not be this elitist about this, this is explicitly a techonology site, with no further designations. The community has it’s tendencies, this way or another, but that doesn’t change the fact that the average to something as obscure as a “furry” will be recieved with some hesitation. This isn’t anything personal, I can imagine that if I went to some “normal” site like Facebook and started talking about the need Free Software that most people would consider me crazy.

                                        1. 5

                                          It’s the exact opposite of being elitist, it’s about being inclusive. You call “technological community” a thing that is aligned to your culture and values and it’s just a very small fraction of the people that produce digital technology. You universalize it because you cannot conceive that there might be different ways than yours of producing technology together. You believe your way is THE way and you reject other ways.

                                    2. 10

                                      I don’t think it’s greybeards, rather non-Americans. I’m in the UK, London, and if there’s a furry subculture here it is so microscopic that I’m not aware of it. I’ve always considered it an American subculture, and possibly mostly silicon valley, but certainly for non-Americans I think it’s very obscure. I didn’t vote either way, and have no idea what the furry thing is about, just glimpse it once in a while.

                                      1. 11

                                        For what it’s worth, in America you don’t just see people walking around expressing as furries while they shop for groceries. Most of us have never run across the culture in person. I think it’s not that this is an American phenomenon but that online spaces are safer, so that’s where you (and we) see them.

                                        1. 3

                                          just how microscopic would it have to be for you to not be aware of it? do you keep tabs on all… culture… in London?

                                          1. 1

                                            It’s honestly not very hard.

                                        2. 9

                                          I really enjoy most of the aesthetic of your pages, and the technical content! I just don’t like the random stuff being jammed in between it. I don’t need a bunch of reading space occupied by a full color, artistic, glorified selfie 6 times. Or in the case of Mara’s first appearance, 16 times.

                                        3. 19

                                          I’m not going to flag it, but the „for furrys“ bit certainly is off topic

                                          1. 38

                                            Furry is my blog’s aesthetic and theme, and a significant chunk of the content, but the focus is 99% encryption. The parts that are furry-relevant are:

                                            1. A lot of tech workers are furries (or furry-adjacent).
                                            2. I’ve found that furries are generally more comfortable with the abstraction of “identity” from “self” than non-furries. I generally attribute this to the prevalence of roleplay in our culture. (I remarked on this detail in the post.)
                                            3. Implied but never stated in this particular article: Since roughly 80% of furries are LGBTQIA+, and queer folks are likely to be discriminated against in many locales, improving furry technology will likely have a net positive impact on queer privacy in oppressive societies.

                                            This page isn’t so much for furries than it is from a furry, published on a furry blog, and with a bad furry pun in the title.

                                            1. 25

                                              You don’t actually need to entertain anti-furry sentiment. And do not worry either, there’s also people who appreciate this. I’d rather see furries than most common traits of the modern web.

                                              1. 19

                                                A lot of tech workers are furries

                                                For certain values of “a lot”. I’d guess that this kind of stuff is more popular in the US than in India.

                                                1. 27

                                                  The main problem with this kind of title phrasing is the forced communication of a political/sexual/whatever message, which is off-topic for the site, and most people don’t care, and don’t want to care for it.

                                                  Anybody visiting the link would see that the page has a furry aesthetic. Then they would have the chance to read the article, or close the page. This way a message is promoted on the main page. I think identity politics are already too emphasized and destructive in discussions, and have a bad effect on communities and society. Consider seeing things like a Heterosexual christian father’s guide to unit testing on the front page. Without judging anybody’s identity, this is not the place and form for that topic and that kind of statements.

                                                  1. 13

                                                    I wonder why the simple reminder of a group’s existence bothers you so.

                                                    1. 15

                                                      For some reason you failed to understand my point, and are accusing me with something instead of arguing my points. Most likely this is because of my inability of phrasing my point efficiently.

                                                      But in the same spirit: I wonder why do I even need to know anybody’s affiliation at all in context of a technical discussion?

                                                      1. 10

                                                        One could make the same argument to flag “Beej’s Guide to Network Programming” or any post about how company X solves their problems.

                                                        1. 8

                                                          And usually they do so, considering it as spam, a form of advertisement… Only not of the political, but of the business kind.

                                                          1. 4

                                                            I don’t think you are familiar with at least the first example.

                                                            1. 5

                                                              But at least I can be familiar with the second example…

                                                              Your style is not that of a Friendly engineer.

                                                              1. 3

                                                                There was a time he went by a different name…:p (angrysock)

                                                        2. 5

                                                          I wonder why do I even need to know anybody’s affiliation at all in context of a technical discussion?

                                                          Because the author decided, that their “affiliation” is relevant to their content, that’s it. You don’t need to follow that thinking, you can opt-out of reading their article, even hide it on sites like lobste.rs.

                                                          Any articel tells you something about the authors identity and cultural affiliations. And most of us just fill the blanks with defaults, where details are missing. i.e. an authors gender on technical content is often assumed to be male, if not stated otherwise. Most of us who grew up in societies with Christian majorities just assume that most guides to unit testing are a variation of the “Heterosexual christian father’s guide to unit testing”. That’s bad because it taints our perspective, even on the already factual diversity of tech and the net. So IMHO it’s a good thing, if more of us keep their affiliations explicit and maybe even reflect on how those influence their perspectives.

                                                          1. 3

                                                            Your points aren’t worth arguing. You assert several things (“most people don’t care,” “have a bad effect on communities”) without any supporting evidence. To the first about whether people care and “don’t want to care” – I don’t find that persuasive even if you can provide evidence that a majority of people don’t want to be confronted with the identities of people who’re considered outside the mainstream. But I also suspect you’re making an assertion you want to be right but have no evidence to back up.

                                                            Likewise, what even is a “bad effect on communities and society”?

                                                            You also express an opinion (“I think identity politics are already too emphasized”) which I heartily disagree with, but that’s your opinion and I don’t see any point arguing about that. OK, you think that. I think too many craft beers are over-hopped IPAs and not enough are Hefeweizens. The market seems to disagree with me, but you’re not going to convince me otherwise. :-)

                                                            1. 6

                                                              Your points aren’t worth arguing.

                                                              Start with a thought-terminating cliché. Then you start arguing my points. :) No problem.

                                                              To the first about whether people care and “don’t want to care” – I don’t find that persuasive even if you can provide evidence that a majority of people don’t want to be confronted with the identities of people who’re considered outside the mainstream.

                                                              I understand your points, but you didn’t really grasp what I wanted to phrase. IMHO “mainstream” and other identities should not confront each other here unless being technically relevant ones, about which technical discussion can be carried on. There are other mediums for those kind of discussions.

                                                              Lucky someone has managed to phrase my ideas better than I could above:


                                                          2. 13

                                                            As I understand @kodfodrasz, they were bothered not inherently by the reminder of the group’s existence, but by the broadcasting of that reminder to the Lobsters front page. When an article title on the front page asserts the author’s voluntary membership of a group, that is not only a reminder that the group exists—it’s also implicitly an advocation that the group is a valid, normal, defensible group to join. One can agree with the content of such advocacy while also disliking the side effects of such advocacy.

                                                            What side effects would those be? @kodfodrasz said that “identity politics are already too emphasized and destructive in discussions, and have a bad effect on communities and society”. I think they are referring to way advocacy for an identity can encourage an “us vs. them” mindset. Personally, I see the spread of that mindset as a legitimate downside which, when deciding whether to post such advocacy, must be balanced against the legitimate upside that advocacy for a good cause can have.

                                                            1. 9

                                                              ^ this

                                                              My assertion is that currently I see a trend where legitimate topics are not discussed because some participants in the discussion have specific opinions on other topics than the one discussed. Dismissing some on-topic opinions for off-topic opinions is an everyday trend, and if bringing our off-topic identities to the site would gradually become more accepted, then that trend would also creep in from other parts of the society, where it has had done its harm already.

                                                              I hold this opinion as a guide for every off-topic identity. I think of it with regards to this forum a bit similarly to the separation of church and state has happened in most of the western world.

                                                              1. 5

                                                                by the broadcasting of that reminder to the Lobsters front page

                                                                The submitter (author in this case) has one “vote” in promoting their content on this site. Usually one net upvote keeps stuff in /new and outside the front page. What’s promoted this content to the front page is the site’s users, who have upvoted it enough to appear on it.

                                                                At time of my writing this comment, the current standing is

                                                                50, -7 off-topic, -4 spam

                                                                Also note that comments themselves contribute to visibility, so everyone commenting complaining about this being off-topic and “in your face” aren’t helping their cause…

                                                                1. 4

                                                                  When an article title on the front page asserts the author’s voluntary membership of a group, that is not only a reminder that the group exists—it’s also implicitly an advocation that the group is a valid, normal, defensible group to join.

                                                                  Are you (or @kodfodrasz) implying that identifying as a furry is in some way so dangerous as to be suppressed by society at large?

                                                                  1. 2

                                                                    One can agree with the content of such advocacy while also disliking the side effects of such advocacy.

                                                                2. 4

                                                                  Would you be fine with a BDSM-themed blog post on a tech topic?

                                                                  1. 8

                                                                    It depends how the theme is explored.

                                                                    If it uses BDSM culture to explore the nuances of consent in order to explain a complicated technical point, I’m all for it.

                                                                    1. 3

                                                                      What if it’s just interlaced with drawings of BSDM activities, like that old GIMP splash screen? I wouldn’t be caught dead scrolling that (nor opening GIMP) at work.

                                                                      1. 7

                                                                        If you work at a place that cares more about some bullshit policing of imagery than technical merit, that’s a yikes from me.

                                                                        1. 5

                                                                          There’s an inherent sexual quality to BDSM that isn’t inherent to furry culture.

                                                                          You do realize that, correct?

                                                                          1. 6

                                                                            Strictly speaking that isn’t necessarily true about BDSM.

                                                                            1. 2

                                                                              Oh? This is news to me.

                                                                              1. 16

                                                                                Yep. There are people, for example, for whom submission is not a sexual thing but instead about being safe and there are people for whom having a little (in the subcategory of dd/lg) is about having somebody to support and take care of and encourage in self-improvement.

                                                                                That’s not everyone, the same way that there are in fact furries who are all about getting knotted.

                                                                                My point is just that if you want to go Not All Furries, you should be similarly rigorous about other subcultures.

                                                                                1. 6

                                                                                  o/ I’m asexual but still very into BDSM (and also a furry!). I know what something being sexualised feels like — took a while to get here — and while a lot of people do link the two intimately (as many do for furry things), they aren’t dependently linked.

                                                                        2. 5

                                                                          Actually, I know a real example. There is a Python-related French blog named Sam et Max. The technical articles are generally considered high-quality by the French-speaking Python programmers. But there are also BDSM- and sex-related articles alongside the Python articles. Even within a Python-related article, the author sometimes makes some references about his own fantasies or real past experience.

                                                                          1. 3

                                                                            Already mentioned elsewhere but it’s my understanding that being a furry isn’t inherently sexual / about sex, though there can be that aspect. I certainly wouldn’t mind a post that was something like “a lesbian’s guide to…” or “a gay person’s guide to..” because those identities encompass more than sexual practices. (Someone elsewhere says that BDSM isn’t strictly speaking sexual, which … is news to me, but I admit my ignorance here. If there’s a non-sexual aspect to BDSM identity then sure, I’m OK with a BDSM-themed post on tech.)

                                                                            1. 3

                                                                              As long as there’s no overt pornography, sure. I’d read a good article on crypto that had “by someone currently tied up” on it. What’s the point of writing if you get shamed for putting your personality in it.

                                                                          2. 4

                                                                            Consider seeing things like a Heterosexual christian father’s guide to unit testing on the front page.

                                                                            That goes without saying, because that’s the default viewpoint.

                                                                            The way the author clarifies and establishes their viewpoint does not make their technical content anymore off topic than someone submitting something titled “A Hacker’s Guide to MFA” or “A SRE’s Guide to Notifications”. The lens that they are using to evaluate a technical topic is an important piece of information that we often-times forget in tech with disastrous outcomes.

                                                                            1. 12

                                                                              No, it is not necessarily the default. But even if it would be, articulating that off-topic identity on the front-page would be unnecessarily divisive, and I’m pretty convinced, that people of other identities would flock the comment section claiming that the post is racist (sic!), and is not inclusive, hurts their feeling, and I think they’d be right (on this site).

                                                                              Hacker or SRE are on-topic tech identities themselves, while sexuality, political stand, religion are not really.

                                                                              1. 6

                                                                                Hacker is a political identity. For instance, it’s one that I find really degrading when associated to the whole profession. The nerd identity or the general infatilizing of programmers is degrading as well. These are tolerated because they are the majority’s identity in this specific niche and presented as “neutral” even though they are not.

                                                                                1. 3

                                                                                  Well I see some positive vibe about the hacker word in the IT sector, if you remember there was some hacker glider logo thingie around the millennia. I’m not one of them, and agree with you, I also find hacker somewhat negative, and not because of the “evil hacker”, but of the unprofessional meanings of the phrase (eg. quick hack). Still lots of fellow professionals don’t agree on this one with us.

                                                                                  Regarding Nerd: I also find the phrase degrading, and I don’t understand those who refer to themselves as nerds in a positive context.

                                                                                  1. 7

                                                                                    I don’t understand those who refer to themselves as nerds in a positive context.

                                                                                    The best way of removing the degrading conotation of a word is to rewrite its meaning. The best way to do that is to unironically use it in a neutral-to-positive context.

                                                                                    1. 1

                                                                                      yeah but the problem is what you want to appropriate. The word “slut” has been reappropriated to defend the right for men and women to have sex freely without judgement. The word “nigger” has been reappropriated because black people are proud of being black. But the word “nerd”? “nerd” means being obsessed with stuff and have very poor social skill and connections. Reappropriating the word flirts very closely with glorifying social disfunctions, exclusion and individualism.

                                                                                      1. 4

                                                                                        Reappropriating is done because there are negative connotations that we want to take out of focus; that’s the whole point.

                                                                                        1. 1

                                                                                          but Nerd is imho all negative. The positive connotations, like being dedicated and consistent on a practice is not exclusive to being a nerd. Being nerd is not even stigmatized anymore: now it’s cool to be nerd and still it’s degrading, like being a circus freak. You reappropriate a word to remove a stigma towards a category, but the stigma is already gone and what is left is a very distorted portrayal of knowledge workers.

                                                                                          1. 4

                                                                                            That the stigma is gone is precisely because people took the term and ran with it.

                                                                                            Besides, I have no problem with assholes (whose opinion of me is no concern of mine) considering me a circus freak: it makes them keep themselves at a distance which means less work for me to get the same desirable result.

                                                                                            (Also: I disagree with the term “nerd” glorifying “social dysfunction” - normalizing, maybe, but that’s a very inclusive stance, especially when these “dysfunctions” are called by their proper name: neurodiversity. And what precisely is the problem with individualism again? And another tangent: knowledge workers aren’t necessarily nerds and nerds aren’t necessarily knowledge workers)

                                                                                            1. 1

                                                                                              I agree with all your values but it doesn’t seem like this is what’s happening in the real world. Inclusion of neurodiversity is happening only in small bubble in USA/NE: if anything, neurodiverse people are just more aware of being different. Good for coping, not that good for social inclusion. Really neurodiverse people are still rejected by the society at large and at best they get tokenized and made into heroes but not really included. Also this appropriation of the word detached the concept of nerd from neurodiversity that if it was ever a thing, it’s not a thing now. Today being nerd is wearing glasses and a checkered shirt. Then if you flirt flawlessly with girls, entertain complex social networks and work as a hair dresser, it’s enough to say your hobby is building radios and boom, you’re a nerd. I don’t see how this process would help neurodiverse people and I don’t see how it is good to have to live up to this stereotype to be included in the IT industry (because in most places, if you are not some flavor of nerd/geek, you’re looked at with suspicion)

                                                                          3. 15

                                                                            A lot of tech workers are furries (or furry-adjacent).

                                                                            I don’t doubt that a lot of furries (or furry-adjacent) might be tech workers, but I’m not sure your statement is accurate, given just how many tech workers there are.

                                                                            1. 7

                                                                              For most people, “Furries” is “that weird sex thing”. I can see a lot of people wanting to make it clear that sexual references are out of place in order to make tech a more comfortable and welcoming place for everyone. I suspect that famous Rails ‘pr0n star’ talk has (rightly) made people feel uncomfortable with sexual imagery in tech.

                                                                              I’ve upvoted because the content is good, but I’m also not really one for keeping things milquetoast. I’d like to see more content like this. The technical parts are worth reading, even though I have no interest whatsoever in furries, and mildly dislike the aesthetic.

                                                                              And yes – I’ve discovered today via google that it’s only a sex thing for 30% to 50% of the people in the subculture, but as an outsider, the sexual aspect is the only aspect I had ever heard people mention.

                                                                              Going forward, I’d just suggest ignoring the downvotes and moving on – they’ll always be there on anything that’s not boring corporate talk, and the threads like these just suck the air out of interesting conversation.

                                                                              1. 3

                                                                                [edit: content moved to different post, this was accidentally off-by-one click]

                                                                              2. 12

                                                                                Yiff it bothers you, why not just read it without the images? Firefox reader view works great fur me.

                                                                                1. 8

                                                                                  It doesn’t claim to be for furries, it claims to be by one.

                                                                                  1. 5

                                                                                    Is it, though? If it was written as “a teacher’s guide to end-to-end encryption” would anybody be flagging it or carping about the title just because the intended / primary audience was teachers but the content could be abstracted to anybody who cared about end-to-end encryption?

                                                                                    1. 10

                                                                                      That’s a good type of question to ask, but your example title “A Teacher’s Guide …” is not equivalent. The author being a teacher could be highly relevant to the content of the article; for example, the article might especially focus on the easy-to-teach parts of encryption. The author being a furry, however, is likely to affect only the theme.

                                                                                      Analogous titles would change “furry” to another subculture that is not innately connected to tech and that people choose rather than being born with. Two examples:

                                                                                      • “Hide my Waifu: An Otaku’s Guide to End-to-End Encryption”
                                                                                      • “Communication is Key: A Polyamorous Person’s Guide to End-to-End Encryption”

                                                                                      Would people complain about those titles? I predict that yes, some people would, though fewer than those who are complaining about the furry-related title.

                                                                                  2. 5

                                                                                    Obviously it’s great that someone wants to give us this information. In return we should give them respect and thanks.

                                                                                    Showcasing their identity not only gives personal color to the post, it also donates some of the credit to the community they identify with, rather than to some default security engineer type we might imagine.

                                                                                    Thanks to this personal touch, some readers can no longer say furries are unintelligent, or never did anything for them.

                                                                                    1. 3

                                                                                      Belatedly, but I’m following up on these flags. I missed this story and am reading through it now.

                                                                                    1. 1

                                                                                      A bit off-topic, but is there some plugin that would give me statistics of what am i typing in command mode in (neo)vim?

                                                                                      1. 2

                                                                                        Assuming by “command mode” you mean Normal mode, I don’t know of such a plugin off the top of my head. But I’ll mention that Vim’s :history command shows the : command-line commands you’ve executed. If you run :history all, you can see a few additional types of history: search string, expression register, input line, and debug command history.

                                                                                      1. 12

                                                                                        I’ve never written a demoscene program before, but while trying this tool out I think I figured out some basic techniques. I’d say this tool is great for learning due to its approachability.

                                                                                        Here’s what I made:

                                                                                        Tip: check out the documentation of the Math object and the bitwise operators for inspiration.

                                                                                        1. 2

                                                                                          After further experimentation, I made some more:

                                                                                        1. 5

                                                                                          For developers who have trouble wrapping their head around working with fragment shaders, this is the most succinct and complete explanation I have seen so far. EDIT: specifically making shapes with fragment shaders.

                                                                                          1. 3

                                                                                            I see; I hadn’t known that fragment shaders (also called pixel shaders) were so similar. I found this page about drawing shapes with shaders: The Book of Shaders: Shapes. A lot of those techniques could be used in tixy.land.

                                                                                            1. 1

                                                                                              That project seems to have been abandoned. The last commit was in November of 2019, and a month-old GitHub issue asking whether work has stopped has not been responded to by the developer.

                                                                                              I was wondering what features Kit has other languages, including Zig, don’t have. Here are a few I found:

                                                                                              • Automatic pointer referencing and dereferencing, as shown in these two examples
                                                                                              • Term rewriting, whose use-cases can probably be served by Zig’s comptime feature
                                                                                              • Implicits: in a constrained scope, Kit automatically passes the value declared as “implicit” to any function expecting that type of value. I think Zig would never want this feature due to Zig’s philosophy of explicitness and simplicity over convenience, as shown by Zig’s avoidance of operator overloading and exception-based control flow.
                                                                                            1. 3

                                                                                              sin(t) * (ceil((x * y) / 2) / t) gives a really cool “galaxy quadrant dying out” effect. This is fun.

                                                                                              1. 2

                                                                                                Link for convenience: sin(t) * (ceil((x * y) / 2) / t)

                                                                                              1. 23

                                                                                                Spoiler: the article never directly answers the clickbait question in the title. The article starts with an overview of the problems with Zig’s competitors, then describes various features of Zig. The conclusion of the article is just (paraphrasing) “this article is getting long so I’ll write more about Zig later.”

                                                                                                1. 30

                                                                                                  That’s technically true, but I would say that this is one of the best articles about programming languages I’ve seen on lobste.rs in a few weeks or months.

                                                                                                  The author demonstrably has experience with C, C++, Swift, Objective C, and Julia, and the ZIg content is quite clearly explained. Better than I’ve seen elsewhere.

                                                                                                  So yes the title has the style of clickbait , but the content is actually good.

                                                                                                  1. 6

                                                                                                    I agree. Was really nice to see a comparison of all those languages in one place and it generally resonates with me.

                                                                                                    I’d love to see some more examples of what the author finds doesn’t “click” with him in Swift though. I really enjoy the language and find it a pity Apple just focused on iOS development.

                                                                                                  2. 12

                                                                                                    I once read somewhere that every headline on articles in print and the internet can be answered with “no” and then you’ve saved yourself a click and a clickbaity article. Applies here as well, next to being on stupid medium.com it’s also not saying much. Lots of words though, not much content.

                                                                                                    1. 17
                                                                                                      1. 3

                                                                                                        Would I have ever remembered that law’s name if you didn’t tell me? ;)

                                                                                                        Anyway, I find it hard to take an article about a C replacement seriously when half the “replacements” it mentions use mandatory garbage collection, and the article doesn’t mention Ada, which is actually used in production, in roles where C is otherwise uncontested, i.e. OS kernels and embedded.

                                                                                                      2. 9

                                                                                                        The question you want to ask yourself is, “Is Betteridge’s Law of Headlines universally correct?” The answer may shock you! Sensitive readers are advised to turn away now.

                                                                                                        Answer is “not quite”. If nothing else because sometimes ad copy starts with a heading like “Is there anything better than Coldbutt™️ branded butt flavoured toothpaste? Our toothpaste flavor exists weigh in.”

                                                                                                      3. 7

                                                                                                        Compared to a lot of the recent thinly-veiled Rust promotional posts, I think this has equal if not more substance.

                                                                                                        1. 4

                                                                                                          Ugh. I wish Lobsters had a flag-topic for clickbait.

                                                                                                          1. 14

                                                                                                            The title is clickbait-ish, but the content is good… I wouldn’t flag this one.

                                                                                                            1. 4

                                                                                                              Spam is probably the closest flag option

                                                                                                              1. 13

                                                                                                                The article is very clearly not spam, so that would be misusing it.

                                                                                                                1. 1

                                                                                                                  spam being misused for this article is implied by virtue of it being the “closest flag option” and not actually the flag they want to use (because clickbait isn’t an option)

                                                                                                            2. 1

                                                                                                              I was about to say, can this article’s title be any more clickbaity? Will Zig also increase my girth my 2 inches??

                                                                                                            1. 2

                                                                                                              If you’d like to use logic programming but don’t like having to install Prolog, you can use one of the many implementations of miniKanren as libraries. For example, Clojure has the core.logic library.

                                                                                                              1. 32

                                                                                                                This is a good read in and of itself, but I found the linked parody of the trolley problem hilarious. Don’t miss it.

                                                                                                                1. 11

                                                                                                                  Along the same lines, I recommend comic #106 Trolley Madness from Existential Comics.

                                                                                                                1. 4

                                                                                                                  While I like writing MD in comments, simple text documents, etc., I really do not get why it became so popular in case of documentation and technical blogs, as it is really lacking in that use cases. Lack of possibility to add custom extensions in cross-parser compatible way is quite irritating. Also fact that MD is very HTML-centric doesn’t help, as it is not that easy to parse it for display in TUI for example, or to generate Manpages out of it, for documentation I think that ASCIIDoc is much better choice, but for some reason - not that popular one.

                                                                                                                  1. 6

                                                                                                                    I use it because I find switching syntaxes harder than using a slightly suboptimal tool; for a while I used txt2tags, but Stack Overflow, Reddit, GitHub, Lobsters, etc all standardized on Markdown so I’d forever be typing the wrong syntax.

                                                                                                                    Overall, I find it works well enough. My biggest gripe by far is the whole “GitHub flavoured” Markdown where newlines are always treated as a hard break, which is an annoying and breaking change which not even GitHub applies consistently.

                                                                                                                    1. 4

                                                                                                                      I think the article addresses this to some degree: Markdown intentionally built on existing patterns that people were using already. I used reStructuredText and MediaWiki’s markup before I used Markdown and the syntax never felt natural, Markdown did. I’d spent years using informal markup and internalising things like underline with equals for a top-level heading, with minus for a subheading, asterisks for emphasis, and so on. The only bit of Markdown that I needed to practice was the syntax for links (I find putting the URL in square brackets more natural, probably from LaTeX where commands are often \command[metadata]{text}, though LaTeX is far from consistent about that).

                                                                                                                      I agree with all of your criticisms of Markdown. The lack of a generic extension mechanism has led to a load of crufty ones. Jekyll uses Liquid with {{ blocks like this }}, which are very clunky to type. I like Beastiepress and Jekyll Scholar in terms of the things that they add, but their syntax is fairly clunky and completely non-portable to anything else. I like GitHub’s tables extension and a few other things that they’ve added.

                                                                                                                      Unfortunately, because the thing that makes Markdown successful is an ergonomic core, every fix for Markdown involves extending the core in incompatible ways and further fragmenting the ecosystem.

                                                                                                                      1. 2

                                                                                                                        I absolutely agree with you that Markdown felt great to me as well after years of living with various markups in countless wikis. I’m truly happy we coalesced on this one, and really can’t grasp why many people claim they don’t understand this… I’m necessarily reminded of those earlier times when posting on the (otherwise amazing) Nim forum, which uses RST (IIRC); writing hyperlinks in RST seems so crazy arbitrarily convoluted to me… Then there’s Wikipedia’s MediaWiki, with its “again, do I put URL on the left of the text, or on the right of the text in a hyperlink?” With Markdown it’s sooo natural… and even easy to read as is…

                                                                                                                      2. 3

                                                                                                                        I’m not sure why that’s surprising. Popularity and quality are – at best – unrelated, and usually inversely correlated.

                                                                                                                        Actually, languages demonstrate this incredibly well:

                                                                                                                        • The only thing that matters is-time-to-market for whatever niche the language is initially targeting.

                                                                                                                        • Getting things right takes time, and such languages always lose out against worse-is-better ones.

                                                                                                                        • Because languages are barely fixable after they have shipped (be it unwillingness or incompetence), all these broken ideas, weirdnesses and quirks will stay with us forever.

                                                                                                                        1. 3

                                                                                                                          Getting things right also requires breaking changes, assuming you were not perfect / prescient up front.

                                                                                                                          Popular languages tend to be that way in part because breaking changes are a disaster for users.

                                                                                                                          1. 2

                                                                                                                            Yeah, looks like

                                                                                                                            • the common assumption of “my language is perfect, let’s not even think how it can be built for change”,
                                                                                                                            • while copying 50 years of design mistakes because of “familiarity”
                                                                                                                            • and trying to extend the language after its release

                                                                                                                            is a losing combo.

                                                                                                                            You’ll nevertheless find people who will defend all three.

                                                                                                                        2. 3
                                                                                                                          1. Network effects: everybody already knows MD
                                                                                                                          2. It’s much, much easier to make a mostly-correct MD parser than a most-correct AsciiDoc or RST parser.
                                                                                                                          1. 3

                                                                                                                            Markdown is simpler than AsciiDoc, and thus less intimidating to learn. That’s probably a major factor behind its popularity.

                                                                                                                          1. 16

                                                                                                                            There’s an error here that makes me question the level of research put into this article:

                                                                                                                            GitHub Flavored Markdown took the original Markdown ideas and the CommonMark spec, and tweaked them to fit the needs of their product

                                                                                                                            GitHub Flavored Markdown (GFM) existed long before CommonMark. In fact, when GitHub introduced GFM, that was the first time I ever encountered a Markdown dialect that purposely differed from Gruber’s Markdown implementation. (The next one I heard of was MultiMarkdown, I think.)

                                                                                                                            CommonMark was published in 2014. Only in 2017 did GitHub redefine GFM as a variant of CommonMark. From what I heard, GitHub did this to simplify development of their Markdown parser and renderer.

                                                                                                                            The development of CommonMark was pretty significant to the history of Markdown as a whole. If you want an overview, see Wikipedia’s summary. You can read some initial reactions to it in this 2014 Hacker News discussion.

                                                                                                                            1. 1

                                                                                                                              Ah, good times. I still have standard-markdown.org from that event.

                                                                                                                            1. 4

                                                                                                                              See also TortoiseGit (screenshots), another Windows-Explorer-centered Git client. It adds overlay icons to files in the Explorer to indicate their status, and lets you perform Git actions such as staging files or viewing the log via a “TortoiseGit” submenu in the context menu of every file and directory. It adds no keyboard shortcuts like those added by this AutoHotkey script, focusing instead on being accessible to new users.

                                                                                                                              I’ve never used TortoiseGit, but I found TortoiseSVN, which has the same type of interface, quite usable when I had to use SVN in 2011. If I had to use SVN nowadays I would probably use git-svn and Tower instead.

                                                                                                                              1. 9

                                                                                                                                For those who believe that past decisions are an indicator for future decision making quality, this response to the issue …

                                                                                                                                Chrome is not interested in this. The XML parts of our pipeline are in maintenance mode and we would love to eventually deprecate and remove them, or at least replace them with something that generates less security bugs. Increasing the capabilities of XML in the browser runs counter to that goal.

                                                                                                                                … was written by the person of fantasy-land promises and Array.includes fame.

                                                                                                                                1. 3

                                                                                                                                  What’s wrong with Array#includes?

                                                                                                                                  1. 2

                                                                                                                                    I found the Array.includes proposal: https://github.com/tc39/Array.prototype.includes/

                                                                                                                                    I’m curious what the fantasy-land promises referred to are!

                                                                                                                                    1. 2

                                                                                                                                      “Fantasy-land promises” must be https://github.com/fantasyland/fantasy-promises, though I don’t know why they’re notable.

                                                                                                                                      1. 3

                                                                                                                                        They are probably referring to the origin of Fantasy land. It started as a response to this response iirc https://github.com/promises-aplus/promises-spec/issues/94#issuecomment-16176966

                                                                                                                                        1. 3

                                                                                                                                          The last few replies are great for people who don’t want to read the whole thread: https://github.com/promises-aplus/promises-spec/issues/94#issuecomment-415222385

                                                                                                                                          The things done wrong here are fundamental to programming/computation itself, so there will never be a time when it is not wrong. And probably never be a time when it doesn’t adversely effect programming in Javascript/Typescript.

                                                                                                                                  1. 6

                                                                                                                                    As much as I like Org and the redesign of its website, I don’t think that it’s on-topic without at least an article relating the work done.

                                                                                                                                    1. 3

                                                                                                                                      This is the closes I could find for that: https://orgmode.org/list/87ft61l19p.fsf@bzg.fr/T/#mb63281a4a4fcc120742484caa5b6c9276fbf0e91

                                                                                                                                      Is it possible to replace the link?

                                                                                                                                      1. 2

                                                                                                                                        “Hi Everyone, just a quick note from me: Regarding the intermediate state, there are a few teething issues that have appeared when deploying the site on orgmode.org.* If we could hold off from announcing this on some of the more high-traffic forums till these get sorted out that would be appreciated :) We want people to get the best possible first impression of the revamp after all. Timothy.”

                                                                                                                                        1. 1

                                                                                                                                          Further down the page:

                                                                                                                                          These issues have now been fixed! Go wild :P

                                                                                                                                          Also, you probably meant to reply to @zge’s comment, not its parent.

                                                                                                                                      1. 1

                                                                                                                                        I hope someone comes up with a language that compiles to PHP, that is not… PHP =) Much respect for PHP anyway. My first job was PHP dev.

                                                                                                                                        1. 1

                                                                                                                                          Facebook’s Hack language is basically a fork of PHP—it added some features and dropped support for some other features. I’m not sure what specifically you dislike about PHP, but maybe Hack is what you want.