1. 77
  1.  

  2. 35

    Agreed. I’m for software to be fun in general, but the foundational stuff should stay boring. Bridges, airplanes, and stop lights should also stay boring. They can be beautiful if you want, but I don’t want them to surprise me.

    Related: https://github.com/ansible/ansible/issues/10530

    1. 30

      Every once in a while I get a feeling that maybe I should have dropped my childhood dream of becoming a programmer when I had the chance, and that it’s still not too late, I can just go get certified and become an electrician instead. This is one of those moments because I swear to God reading through that thread makes it feel like the software industry is bipolar.

      On the one hand, yes, cows filling your screen is unprofessional, and it’s one of those things that can unexpectedly fire off during a demo and, to quote one of the commenters, “[make] it look as though the product designers are not taking their role seriously”.

      On the other hand: this is all being debated on Github, the pinnacle of professional collaboration, whose fsckin logo is a cartoon octopus-cat, and whose homepage features an astronaut, um, cat, I guess? looking at a cartoon animation of Earth, and whose docs page features a cartoon of squirrels chasing someone running while holding a human-sized pencil. I mean there young adult cartoons out there whose homepages look more serious, if I had to guess Github’s target audience… based on the cutesy cat, my first instinct would be 6-9 year-olds. Is Github really that popular in kindergartens and elementary schools that it’s worth designing the whole UI like that?

      Good thing people aren’t opening Github while giving demos…

      1. 19

        I kept wondering what kind of awful companies these people work for that having cows show up on the screen during a demo would be an instant fireable offense! Sounds like a dystopian hellscape to me.

        1. 10

          For real. I’m tired of mega-corp-HR-department types getting to decide what’s okay for the entire industry. I understand the point of view of the OP and cURL, and I respect that. But I have nyan cat scroll bars in my editors, sometimes put jokey things in my mockups, and even name my internal work projects funny names (yes, management does know the names, and yes, they actually say them at meetings! XD). None of this is disrespectful or offensive or anything like that. It’s just if I’m asked to write a tool to send alert emails when a phone call goes unanswered, I might name it something stupid like “PhoneNagger” (maybe not that because the phonetics are a little risky, but you get the idea).

          It’s either me being juvenile or perhaps it’s my background in academia, because I remember going to conferences and seeing math professors walking around in sweat pants while discussing way cooler shit than middle-manager-X at YetAnotherWidgetCompany ever did. Yet, Mr. Manager probably has opinions about the professor’s “professionalism”. That just leaves such a bad taste in my mouth.

          1. 5

            Hah, wait until they find out the whole provisioning and deployment cycle is done through a program named after a fictitious device from a sci-fi novel, from a company called Red Hat, whose logo is a red fedora. If that doesn’t inspire bullet-proof, rock-solid confidence and stern, military-like professional discipline, I don’t know what does.

            1. 2

              I am not sure that prussia-style skulls & bones symbolism would make it a more professional discipline. Better engineering practices would though, and they can keep their astronaut cats with red fedoras.

                1. 2

                  Unfortunately they abandoned that really cool logo in favour of, uh, how does the phrase go, a more streamlined design. It’s really just a boring red fedora now.

                2. 2

                  Absolutely, what I’m getting at is that the whole “it’s unprofessional” thing, of which the cowsay debacle is just a symptom, is just a highly pseudo-efficient kind of bikeshedding – it’s efficient as in nobody wants to argue against something being removed because it’s not professional, but it also generally leads to no improvement at all. Arguably, Lockeed Martin’s planes would fly as right with or without the Skunk logo on the buildings, to cite just another example of something that meets every checklist of “unprofessional” but nobody gives a damn about.

            2. 5

              The complaint isn’t that cowsay is childish, it’s that it’s surprising. GitHub’s illustrations are ridiculous, but they’re consistent. The problem would be if their illustrations only became ridiculous in some web browsers or if you had some specific program installed.

              1. 4

                I’m pretty sure the person who had nightmares about getting fired over it was agonizing over the appearance of cowsay, not their inability to predict whether the ASCII bovine would visit the terminal or not (which, in fact, isn’t hard to determine, either). I imagine there’s not much of a chance of getting fired over things like temporary connection timeouts, mistyping your password at the sudo prompt, or the occasional segfault of early-stage applications, all of which routinely happen during demos and don’t exactly follow a strict timetable, either :-D.

              2. 4

                The article was not about fun logos. It was about not allowing irrelevant code in a core application, to avoid the overhead of reviewing and maintaining that code.

                1. 3

                  When you’re not logged in it does look kinda weird and could be confused with kerbal space program. But other than that: It’s FaMiLy FrIeNdLy

                  1. 5

                    That extremely punchable cat (words I never thought I’d utter, man, I love cats!) is indeed shown only if you’re logged out but the rest of the cartoon characters are everywhere. And it’s not just Github, either, surfing corporate web in 2021 feels like flipping back and forth between Disney Channel and the CNBC business news, it’s cute and nauseating all at the same time!

              3. 29

                My favourite failed easter egg is in man(1): https://unix.stackexchange.com/questions/405783/why-does-man-print-gimme-gimme-gimme-at-0030

                It used to print “gimme gimme gimme” at 0:30, because of the Abba song - “Gimme Gimme Gimme a man after midnight”. This failed a functional test.

                1. 9

                  You can have very nice “easter eggs” and properly document them (but do they still deserve that name then?).

                  For instance, I like the Redis command “LOLWUT”: https://redis.io/commands/lolwut

                  1. 4

                    Yes. Who says easter eggs should be undocumented? As long as they are documented and require a specific input that is never used in normal program operation to fire, I have nothing against them, even in “critical” projects (critical is subjective, of course).

                    1. 3

                      the teapot is another nice example of this.

                      1. 2

                        418 forever, I’m with you!

                        1. 2

                          I use the HTTP 418 response code in a critical project—my gopher server to inform wayward web bots they’re not talking to a web server. It’s great for that.

                      2. 3

                        LOLWUT wants to be a reminder that there is more in programming than just putting some code together in order to create something useful.

                        I love this sentiment.

                      3. 10

                        Related soapbox: stop it with the WTFPL-and-friends shenanigans.

                        I get it. Licensing isn’t fun. It’s frustrating and convoluted and, depending on how you lean, may be generally a bad idea for software. But it’s here, and we have to deal with it. Being edgy and using the word “fuck” in an attempt at being subversive just flags as being childish, and ironically, no one can do anything with your code, because it’s not a license.

                        If you really want people to do whatever they want with your code, use MIT, 0BSD, CC0 or something tested that actually does what you intend, and move on.

                        1. 9

                          I actually advocate eschewing licenses. I don’t want companies to benefit off of my work product without paying me, and I want individuals to go ahead and use it for their own personal projects. In reality, for code without a license, most people aren’t going to look at a license file unless they find themselves in some legal dilemma, and most people tend to assume that code is open source by default, so they will just go ahead and use it without thinking more of it, that’s fine. After all, if I didn’t like it, then what am I going to do, sue them? If they are really scared, they can send me an email and I’ll grant them a perpetuity license or whatever.

                          Now for companies, they have legal departments that will wring-hands over something not having a license, so not having a license will deter them and make it harder for them to use it. They’d have to email me and from there we have a line of communication where I can state that they either pay me, or to GTFO for trying to exploit my work output for their profit margin.

                          Now for big companies, or for things like ICE, even if I do have a license, what am I going to do, sue them? They can win a war of attrition and tie me up with legal red tape for the next thirty years. There’s literally no reason to bother with dealing with licenses because in reality, functionally when you are using software, it doesn’t matter one iota.

                          The idea of “Open Source” as a concept has been, overall, detrimental to the “Free Culture, Free Software” movement anyway – such as when GNU/The FSF petitioned one of the Nordic governments not to abolish copyright, as it would be detrimental to GPL licenses. Not to mention that it’s facilitated and aided what is essentially, continued mass exploitation on a previously unforseen scale.

                          1. 2

                            I actually advocate eschewing licenses. I don’t want companies to benefit off of my work product without paying me, and I want individuals to go ahead and use it for their own personal projects.

                            I feel much the same way, but I’m not sure not using a license achieves what I want. Ideally, I would want a functional “Ethical Source” or “copyfarleft” license, but I’m also skeptical about the ability of licenses to achieve those goals. I’m actually looking at the FAFOL (Fuck Around And Find Out) license, just because it’s going to be an unacceptable legal risk to any company looking at it, but no actual person in their right mind is going to pay attention to it.

                            1. 1

                              This is an interesting one because so many folks work for companies which might run afoul of some “ethical source” licenses. Like imagine someone who works for a healthcare company or an energy company or a government. It’s sort of an interesting conundrum.

                            2. 1

                              such as when GNU/The FSF petitioned one of the Nordic governments not to abolish copyright, as it would be detrimental to GPL licenses.

                              I’m really interested in this, do you have a source or can you point me to a good place to start looking for info about this?

                              edit: i found this: this

                            3. 8

                              Yeah, I don’t think saying “fuck” counts as edgy anymore…

                              1. 1

                                Why is it not considered a license?

                                1. 2

                                  Because neither you nor I are lawyers. Plus it’s redundant to a bunch of real licenses.

                                  Does “do what the fuck you want” include suing you if the code doesn’t work? It could be interpreted that way, hell, it might even invite it. I dunno — again, I’m not a lawyer — but it’s not worth me taking the slightest risk in that regard if the only benefit is just to be petty.

                                  But people want to be smugly against licenses, and ironically they don’t even get the benefits they want to be radically open. It’s sad, really.

                                  1. 1

                                    (Disclaimer: I am not a lawyer and this is not legal advice, of course)

                                    Us not being lawyers has nothing to do with whether or not it’s a license.

                                    It not having a warranty clause also has no effect on it being a license or not. That may preclude it from being a good license, which I’d agree with.

                                    I think it’s more a statement on the restrictiveness of certain licenses, not a critique of licenses in general.

                              2. 3

                                You mean there’s not an entire flight simulator embedded in there?

                                Seriously though, I allow myself exactly one (1) Easter Egg per product: if there is a command line, typing xyzzy will print Nothing happens. That’s it. No other eggs allowed.

                                1. 2

                                  Similar reasoning to why Microsoft removed easter eggs from Windows around XP(?): https://docs.microsoft.com/en-gb/archive/blogs/larryosterman/why-no-easter-eggs

                                  It disappointed younger me, but after getting frustrated by other “fun” features in other tools over the years while trying to debug/fix things or do Serious Work™, I definitely agree these things should stay out of foundational tools. I do still miss the whimsy of messing around with a computer as a child and finding such things though.

                                  1. 2

                                    I mean, I think there’s still a place for that whimsy, myself. But I’m also a hobbyist in addition to a professional.

                                    Situated scripts are a nice place to strike that balance.

                                    1. 1

                                      And yet, edge://surf still exists.

                                    2. 2

                                      Easter eggs were never supposed to be present in critical software.

                                      1. 2

                                        One might argue that if an Easter egg destroys your critical software you really should make sure to have a better understanding of your critical dependencies. After all, if a fun Easter egg can cause problems, what about a malicious attack?

                                        1. 1

                                          You usually don’t expect your critical dependencies to maliciously attack you. Most organizations are probably vulnerable to a malicious libcurl.so.

                                          1. 2

                                            You usually also don’t expect an easter egg to cause problems. Most organizations are probably fine with software having Easter eggs. Even the ESR releases of Firefox have Easter eggs.

                                            The point I am trying to make is that if you have something that let’s say lives depend on you certainly do want to audit any dependency before incorporating it and yes, that includes your libcurl. And if you are including dependencies that don’t work as you think the work, you are the only one to blame, no matter how many organizations would do the same.

                                            Even though I’d argue that libraries, and largely non-interactive code doesn’t really have undocumented easter eggs. There’s certainly quite a few CLI tools that have a switch or detect whether they are used interactively or not, for example to check if output should be presented in a more human readable way.

                                            Also don’t get me wrong, this isn’t an argument to include easter eggs, just that unexpected behavior doesn’t just come from easter eggs and that one should be prepared for it in a wider context.

                                        2. 2

                                          The neatest easter eggs I’ve written added zero lines of code, no extra ifs or whiles or angle brackets, but produced something to smile about when reading a file or network protocol transaction on the byte level. So… uhm. Easter eggs don’t have to be large and complicated things in order to be good, but rather to be nice in the eyes of people like us.

                                          1. 1

                                            the web itself is an easter egg

                                            1. 1

                                              At the expense of contributing to worsen the problem o am going to pick on… the energy and resources put into this argument is probably more costly than an Easter egg. Not advocating for or against them, just feels weird to take such an unimportant aspect to thisnöevel of discussion. Feels like bikeshedding

                                              But I can relate to the sentiment of proliferation of Easter eggs everywhere. At some point it starts to be an annoyance.

                                              1. 1

                                                You should add an easter egg 🥚.