Threads for wink

  1. 3

    I am confused by this post. It seems to go all over the place from mentioning “DevOps” (probably in the current marketing speak sense, no details though instead of the original meaning), going into detail for lean and Toyota and ending with a link to the Agile Manifesto. I’m not sure if it’s criticizing the right thing with the wrong labels or if it’s about the wrong things. I also never personally experienced this Toyota process worshipping, not even in the hey day of Agile, before DevOps even was a thing! Kanban is useful, but it’s a tool with a few criteria, not a philosophy of life. (Well, it shouldn’t be.)

    1. 1

      Sounds great, and I totally stole the name ‘blueprints’ because you’re right, theme doesn’t paint the full picture… which means I switched over my site to my own SSG last night and have no use for this :/

      1. 1

        I want to personally extend my gratitude to the Commercial users of Qt for beta testing Qt 5.15.4 for the rest of us.

        That’s great wording.

        Less humorously, I do wonder about the repercussions of the Qt license change and if it’s just bad for the open source projects on paper or if there’s a huge impact. And if the commercial customers are actually suffering because of lack of testing from the wider open source ecosystem…

        1. 1

          …and it wasn’t sync -> async

          1. 1

            Sounds very useful if you have this problem, I just want to add a disclaimer that it might also be your too-new-kernel that’s the culprit. Had that problem once where we built on CentOS in Docker, but the hosts’ new kernel would leak through and the resulting binary would not run on the corresponding RHEL version. Might have been a Qt quirk, but a problem nevertheless.

            1. 22

              I don’t understand. Nowadays people don’t remember their ASCII by heart any more?

              1. 24

                I genuinely hope this is a joke, because I’m 35 and been programming as a career for 12-ish years (including a 1-year paid internship) and I haven’t needed an ASCII chart more than a handful of times.

                1. 12

                  Hahaha, I feel you.

                  I guess it’s always other people who deal with stuff like vtys and software flow control and fast parsers and keyboard drivers for us.

                  OTOH, man ascii. Typed in cool-retro-term for the best effect when teaching.

                  I believe it’s nice to start with unescaped in-band formats, then move on to the escaped ones, then fixed layout and finally TLV.

                  1. 5

                    man ascii

                    Did not know that was there. Nice!

                    1. 4

                      Ha, I just had to check to make sure \044 was what I thought it was when I saw it in a script yesterday.

                    2. 8

                      Being able to read hex and distinguish ASCII can come in handy in surprising places (especially during debugging).

                      1. 1

                        Recognizing SHIFT-JIS in hex has saved me days before.

                      2. 2

                        I’m sure it’s mostly a joke, but surely most developers know at least 1-3 ASCII codes by heart, especially full stack devs. When debugging HTTP-relates stuff you see stuff like %20 a lot

                        1. 1

                          Depends on what you work on, after many years of googling (no, I don’t have it ALL memorized) I started self-hosting one at an url I remember)

                        2. 2

                          Most people can’t read hexdumps anymore, and don’t have to thanks to improvements in tooling in recent years. We should be glad people don’t have to remember ASCII anymore :)

                          1. 2

                            Mine has rotted quite thoroughly out of my head. In the blue moon that I need to check, I just go pull up the table.

                            Most of the character problems I deal with these days involve Unicode instead, or rather, people not understanding Unicode and screwing it up.

                            1. 2

                              The last time I saw an ASCII chart printed in a book, it was published in the 80s (in fact, I think every computer book published in the 80s, at least in the US, had an ASCII chart somewhere in it). By the 90s, I think it was assumed ASCII was a known standard.

                              1. 1

                                I slacked off back in the days and didn’t get around to actually learning it. Then we switched to Unicode and I just gave up.

                                1. 6

                                  FWIW, all the ASCII knowledge is still applicable; the first 128 Unicode characters matches 7-bit ASCII, and UTF-8 encodes the values below 128 as just plain bytes with those values. So when looking at most text using the Latin alphabet, you can’t tell if you’re looking at ASCII encoded as bytes or Unicode encoded as UTF-8 even when looking at a raw hex dump.

                              1. 6

                                Interesting, that’s a name I’d forgotten. I can’t say why, but my bubble of mostly PHP developers with strong ties to the MySQL folks had absolutely heard about it and were (eagerly or not) awaiting the release. I’d also forgotten that this was right around the time Oracle bought Sun.

                                Also maybe misreading it, but the reason most open source projects back then not having CI wasn’t for lack of trying, mostly that Hudson/Jenkins were a complete mess and security nightmare to run on the open internet, also there were hardly (or none) free offerings, so you had to ask someone to sponsor a dev server. In that time we absolutely had CI for everything at work and so those of us who also did open source work would’ve done that there as well.

                                The one completely new thing I learned from this post is that the Drizzle team made OpenStack, but for all the functionality it provided I was not very happy with it. I guess it was less the tech itself, but running OpenStack as a small team was hell, especially with their 6 month? release cycles and very painful upgrades.

                                1. 1

                                  Out fo curiosity, What CI did you have at work back then? You criticism of OpenStack is a common thread. I never tried it but what was it that developers didn’t like about it?

                                  1. 1

                                    We started with CruiseControl I think, then Hudson and Jenkins, sometimes Bamboo at customers. Here are some slides from a talk I gave in late 2011, that should cover most of the tech.

                                    The problem with OpenStack for us (not the company mentioned in the talk) was that it was like 90% stable, but if you found an edge case it was really hard to get help. Because most of the users were bigger orgs where they’d probably just tell someone to take a week to fix something and contribute upstream. We ended up with quite a few 3 liner local workaround patches in our deployment. But mostly, the upgrade process wa very tedious and we could never really replicate our issues in a small lab environment, so we could never be sure that upgrading prod would actually work without bigger interruptions. Again, small startup that didn’t just have a second set of identical machines as staging. All the success stories I heard were from people who either had a very boring single-datacenter setup (think proxmox, just on 5 hosts) or people who had dedicated “operations” teams - whereas we were 6 people doing software, hardware, datacenters, ops, oncall for the company. Everything else was kinda manageable, but OpenStack maintenance just leeched off so much time… Also this was a) before containers were really widespread and b) we needed to be local in data centers, so anything cloud wasn’t really helping.

                                  2. 1

                                    so you had to ask someone to sponsor a dev server.

                                    This 100%. This was all pre-AWS. I remember those days well. Servers were expensive and hard!

                                    IMHO EC2 was what changed the game.

                                  1. 6

                                    Language with first public release does not have put as much thought and research into a data structure as the language ecosystem that often claims to be the #1. News at 11.

                                    That is not me defending Hare but I didn’t like the tone of this post either.

                                    1. 3

                                      You can technically build anything in 100 lines of code, but that’s not very illustrative. By the time it can do what most people expect from an SSG, it will be at least 10x as large because there’s nothing you can with inherent complexity.

                                      1. 4

                                        Having done nearly the same thing as the author (but in 333 lines) I don’t think “what most people want” is really helpful, because then you’ll get something like hugo - and the reason I wrote mine was mostly “hugo being too feature-rich and constantly changing” in the first place. And no, I have not fully migrated to my own (despite claiming feature parity for the subset of hugo I use) but I thought about it again just this weekend, and it’s because I am lazy…

                                        In general I do agree with you, the focus on 100 lines is misguided, especially if you’re pulling in a few big dependencies.

                                        1. 3

                                          Please note that I didn’t say “as large as Hugo”. ;) I find Hugo a polar opposite of what I want an SSG to be: bloated, non-extensible, and constantly breaking.

                                          My point is that most people will want at least some kind of page metadata rendering, for example, and that alone is easily 100 more lines. Even a single-user, “recompile to change” SSG has a lower bound of SLOC for practical use. If you want it to be usable by other people, good error handling and reporting alone can add hundreds more lines, too.

                                      1. 8

                                        So, over the span of about a week, I tested out the latest offerings:

                                        I’m a bit confused. What’s the point of trying any OS for less than a week? That’s hardly enough to get comfortable with an OS (or programming language or database, etc.) Given that evidently four operating systems have been tested over the span of a week that leaves even less time for each of them.

                                        It reminds me of Linux distribution reviews stopping right after installation maybe listing the the applications on the desktop or the default wallpaper as the last thing essentially. Even though at least this article didn’t do this which is a delight.

                                        Of course one is free to write about whatever, but I’m really unsure about the goal here. Also given that it wasn’t mentioned which BSD had which characteristic to prevent flame wars from what I read in genuinely curious about the overall goal of it. Or was it just creative writing, in which case it feels a bit off topic.

                                        1. 12

                                          I think the article achieved it’s goals:

                                          The primary goal was to build as much of my C++ code that I could. The secondary goal was to try to rig up an X environment that looks and works like what I tend to use on my normal workstation: fluxbox, urxvt, bash, a couple of specific (and ancient) Dock/Wharf/Slit/whatever widgets, and so on.

                                          and the approach of using VM’s to for a week to see if you can create an environment that suits your needs, seems like a good starting place. As a long time OpenBSD user it was interesting to see the issues around installation, that generally I no longer think about as I know how to get what I want from the system.

                                          1. 2

                                            I meant it more from the reader’s perspective or even more from the lobste.rs perspective. That’s what I meant with “free to write about whatever”. I am totally fine with the article, but not sure what the intention was. It’s barely a review giving that it’s neither per OS, nor does really tell much about actually using any system, still it kinda came across like one.

                                            If you found it interesting that’s great. Just was curious if I missed the point of why this was submitted.

                                            1. 2

                                              It was interesting to me, but I check Rachel’s writing on a regular basis.

                                              She wasn’t trying to provide a review of the desktop environment or the like, because at this point she configures her environment to be basically the same on whatever Unix she’s on. The only meaningful reviews to be done would be detailed discussions of select vs kpoll and the like, but those don’t give a useful overall impression. Her task—compile a specific set of software she cares about—is well posed and provides a real exercise of the system for her purposes: what issues come up when you try to compile your software on it?

                                          2. 4

                                            What’s the point of trying any OS for less than a week?

                                            That’s more time than most people give software when it’s not working in the way they want to, even more if they just want to be productive instead of tinkering around. So I think this is a very unfair claim.

                                            I just tried to setup a netbsd VM for some OS specific build configurations. Turns out I probably did something wrong somewhere and now I can’t SSH into the box. But meanwhile my CI for netbsd turned green, so it’s the end of my time investment for a netbsd VM (and journey into *BSD). That was about ~5 minutes.

                                            1. 2

                                              I still don’t understand. Have you been productive after your first five minutes of Windows, Linux or macOS? Did everything worked like you wanted it to in the first five minutes?

                                              Of course to try something is a different use case and I assume you did not end up writing an article about NetBSD in the end.

                                              1. 2

                                                I’d find it pretty weird if you come from Linux and aren’t productive on FreeBSD or OpenBSD (any issues with stuff that are simply not supported or need some porting of your own) very quickly. The case could be made for OSX, but if you look at my i3 setup you’d have to dig a little to find out which Linux distro it is or which BSD.. I think the article perfectly describes this. You expect a vaguely POSIS/unixy system and once you made it through the installer and the package manager man page you should be able to do some things. And it worked, for the most part. I think that’s great.

                                          1. 3

                                            Takes me back to 2015 when a lot of people started doing these xyz_ebooks twitter accounts with remixes of their tweets. I only remember that the software was written in ruby, but not the name.

                                              1. 4

                                                I reject the intro already. There is nothing scientific about preferences. I like my MX Black and Brown and I can’t say why - and that’s not important. I tried Red and I prefer Black. I tried Blue and I’d rather use most non-mechanical ones over Blues. It’s like the fabric of your couch or your brand of soft drink…

                                                1. 22

                                                  Yes, but an important part of a review is to try and convey objectively what the product is like so that you can decide if it fits your subjective preferences without actually having tried it.

                                                  1. 4

                                                    The problem is, you might not be able to say why - neither can most people. But lots of them do like to say why, so unaware of the fact they bundle all of their experiences and biases into these potentially misleading reviews, which are generally meaningless outside of the experiences, preferences, biology etc., of some given person.

                                                    1. 2

                                                      And it is not about the sound, but maybe it is about the sound ;)
                                                      Try all, change when bored! https://github.com/deejayy/cliqsound

                                                      1. 1

                                                        Yeah, preference is subjective. They need to provide a group of reviewers, who each give their subjective take.

                                                        1. 1

                                                          There is nothing scientific about preferences.

                                                          Except when there is.

                                                          Some examples: your favourite brand of soft drink is likely to be your favourite in part because of intense research on the part of Coca Cola Amatil or one of their competitors. Likewise your couch fabric is from a carefully researched, selected, and marketed subset of profitable fabrics available to that manufacturer.

                                                          Some disclaimers: sometimes they aren’t. I prefer the smell of two stroke engines because that’s how fast exciting bikes smelled when I was a teenager and getting up to much naughtiness on them. And don’t assume that manufacturers research your preferences because they want to satisfy them; it’s as often done to understand them as a precursor to manipulating them.

                                                          But please don’t take this as anti-capitalist polemic :) I’d actually prefer (heh) laissez-faire capitalism to our current mixed market. But I’d prefer it warts and all, and if you don’t think scientific treatment of preferences is one of those warts (or sometimes beauty spots), you’re probably being played more easily than those who do.

                                                          Edited to add: and sometimes it works the other way around, when aggregate preferences reveal truth. I recall - but annoyingly can’t now find - a study that demonstrated cross cultural preferences for certain types of landscape beauty that implied their suitability for habitation by primitive humans. That is, our preferences for beautiful landscapes may be a consequence of our recent evolution.

                                                          1. 1

                                                            OK, please point me to any source why I would prefer Coke over Pepsi? Apparently both companies did an excessive amount of research how to win me over?

                                                            Tongue in cheek aside, maybe I was overly terse and other have said it better. But sometimes I’d just prefer my new car to be blue and not red, even if there was a measurable advantage - I just don’t like the color.

                                                            Same with MX Blues. You might be able to persuade me that I could type 20% faster. Unless I was entering in a speed-typing contest I’d still stick to the other ones for work and leisure.

                                                            I think the main problem is that people who want to scientifically quantify things sometimes just overlook people’s priorities. For decades I simply chose my CPU vendor for 2 criteria: speed vs price and “are there known problems with the platform/chipset” - nothing else mattered. Coming to mainboards it was already some sort of “does it have the correct features?” and just like that all scientific things went off the board.

                                                            Good point about the market only providing a certain subset of things to have preferences for. But I am not sure this is the correct discussion, it just limits certain criteria to the most mainstream methods. I.e. the “perfect” version of something is either too expensive or has some other drawback that it won’t even be on the normal market, so we consumers have to adjust our preferences to what is available. But I think that brings it out of scope. I honestly do not care about a scientifically better keyboard switch if I can’t buy it. And then I’d still need to like it ;)

                                                            1. 1

                                                              OK, please point me to any source why I would prefer Coke over Pepsi?

                                                              Sure:

                                                              https://www.psychologytoday.com/au/blog/subliminal/201205/why-people-choose-coke-over-pepsi

                                                              As expected, both the normal and the brain-damaged volunteers preferred Pepsi to Coke when they did not know what they were drinking. And, as expected, those with healthy brains switched their preference when they knew what they were drinking. But those who had damage to their VMPC – their brain’s “brand appreciation” module – did not change preferences. They liked Pepsi better whether or not they knew what they were drinking. Without the ability to unconsciously experience a warm and fuzzy feeling toward a brand name, there is no Pepsi paradox.

                                                              I think the main problem is that people who want to scientifically quantify things sometimes just overlook people’s priorities.

                                                              Yes, agreed. There are a couple of drivers for this; it’s easier to deal with people in the aggregate when looking at stats, and also, people buy into the idea of intrinsic value (which is itself a philosophical error). It’s never valid to ask “is X valuable” only “for whom is X valuable, and for what purpose?”

                                                        1. 4

                                                          Is it really that hard to not commit secrets? I mean I just don’t ever put them in with code… Never use git add . I guess it just seems like a heavy handed solution to a problem that’s barely there. Unless this happens a ton elsewhere. I am astounded when I hear the statistics about how many secrets are committed in GitHub, but I wonder if it has more to do with a lack of understanding than just a git flub/accident.

                                                          1. 4

                                                            I think it’s a coding practices thing. Like Nathaniel Borenstein said, “No ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.” I never hard code secrets because secrets always come in as environmental variables or other parameters, but I think for people who just want to get something done quickly, hard coding seems like the fastest way to do things.

                                                            1. 3

                                                              I think in a perfect world you’re right, however a lot of exploits that cause users data to be exposed are caused in part by people checking in secrets into source control. My goal with this project was to create something as lightweight and quiet as possible such that you can mostly forget that it’s installed and get the protection with very little downside. Also if you work at a company on a web service the security team might mandate using a security scanner as part of your pre-commit, in which case it’s nice to have a very fast and lightweight option.

                                                              1. 1

                                                                i like the concept of having a company where the security team might mandate a tool like this

                                                                the point i was making is that if someone is committing secrets, they probably don’t realize what they’re doing, and in those cases, they probably won’t understand the need to add this tool to their git pre-commit hooks

                                                                in other words, if they were to fully understand what this tool is used for, then the usefulness is probably greatly reduced

                                                                which leads me to feel like ultimately the education is what is important… but the security team mandate thing is good, having this run in CI before in a main branch is good too, depending on your repo setup this may make overwriting the history in the repo easier

                                                                but best to have it checked before ever committed, which is the point of the tool

                                                              2. 2

                                                                It’s easy to not commit secrets! That’s why we should make a machine automate it for us.

                                                                1. 1

                                                                  I’m also not sure what’s hard about it.

                                                                  Never use git add .

                                                                  Don’t even need to avoid any commands - instead, just don’t have secrets in the repository directory at all. It’s easy and also completely foolproof.

                                                                  1. 1

                                                                    Which breaks down for infrastructure repos that are mostly secrets :P

                                                                    1. 2

                                                                      i work every day in infrastructure repos and don’t have any secrets committed, so that just sounds like someone’s doing something wrong

                                                                      1. 1

                                                                        You can try to argue with reality or just accept it. There are setups that are a lot older than e.g. Vault has been around, or anything else based on tokens.

                                                                        I don’t think this is the place for judgment of practices, and I’m not even involved in this game anymore, so don’t read this as defending myself.

                                                                        1. 1

                                                                          oh, not arguing at all, it just seemed like your statement was a “this won’t work for infrastructure repos”… which was, at least I think, the only logical conclusion to take from your statement, because i think it’s pretty obvious this isn’t going to work for repos that are literally designed to store secrets

                                                                          then again, maybe the :P invalidates any attempt at a logical conclusion

                                                                    2. 1

                                                                      Never use git add . or git commit -a is good advice for other reasons though.

                                                                  1. 1

                                                                    I can’t judge if it’s a good one, but it absolutely prefers a certain type of coder. Bugs notwithstanding I guess I would’ve done great, as that’s about how 90% of my non-bug open source contributions work. The thing is that I’m also not sure if it maps well to software inside corporate structures. The main point being “you can explain the problem in 5 minutes because it doesn’t depend on 5 other things and there are tests AND you can just interactively test it with telnet? Ridiculous.”

                                                                    1. 5

                                                                      I want to be excited because Qt 5 was and is my favourite cross-platform GUI framework… but with the licensing and the change to ‘need account and login’ I’m not sure I should actually continue bothering to update my toy projects, it’s getting more and more convoluted and I don’t know if I want to find out anymore if and how I can use it. I am so glad I don’t have to have business decisions around this at least.

                                                                      1. 4

                                                                        The “need account and login” part is… particularly annoying. I used Qt on Linux since early 3.x versions – I briefly developed Windows applications with 4 dot… something, years ago, but I’ve mostly used it under Linux. It’s always been a matter of $packagemanager $installcommand qt for me.

                                                                        Fast forward to 2022 and I want to use it under macOS and… I have to dig through the website for the download button, which is buried under a ton of “no no you don’t want the open source version” copy that’s so bland it makes oatmeel feel spicy, download some installer (which looks like someone went back in time to when Matrix was fresh, handed out Electron to a fifteen year old and said here, go wild), make an account, log in through the installer which will then download the whole thing for me, and wants me to maybe send data back to the mothership.

                                                                        Is this what people who tried to use Qt on other OS went through all this time? What in the actual fsck, no wonder no one wants to touch it.

                                                                        Edit: I mean I get that Qt’s owners need to make some money and they haven’t figured a better way for that than charging for the commercial version. No problem. But does anyone actually imagine that making it hard for people who already know that it exists to download the open version will somehow make the same people pay for the commercial package? What do they think the sales funnel looks like here? Does it really end with hmm, yes, I am a very busy person, I will gladly pay four grand a year to write hobby programs, instead of spending thirty seconds looking for the download button, and feeding the installer my spam email address which gets checked like once a year, for entertainment purposes, just to see what the Nigerian princes are up to this year.

                                                                        1. 3

                                                                          I don’t use Qt so forgive me if this is a silly question, but if I look for Qt in the package manager of my OS, I see qt-base 6.3 and many other qt-things version 6.3.

                                                                          Is this not the same as in the article?

                                                                          1. 3

                                                                            that is fair, but I’m usually on Ubuntu LTS + Windows, so I often build Qt myself. And because I don’t use it very often, every few months I go back and need to check which versions are now actually what I want.

                                                                            I’m quoting Wikipedia here:

                                                                            Starting with 5.15 LTS, LTS releases are available only to the commercial license holders. For open source users, such LTS releases are available as regular releases only. Qt 5.12 LTS is the last Qt version to offer an offline installer and the standard support ends in December 2021.

                                                                            So for me (and only for me) this means:

                                                                            • on Ubuntu 18.04 I am stuck with 5.9 as I can’t use a non-commercial version of 5.x that is still supported
                                                                            • on Windows I am still building with 5.12 or whatever I had installed originally. Could have upgraded to 5.15 but that is also not supported anymore
                                                                            • I have not yet tested 6.x - I suppose there’s some work to be done
                                                                            • the 6.3 you mentioned will only have support for 6 months
                                                                            • 6.2 has support until (30 Sep 2024)

                                                                            I am not really complaining, but I thought they stopped LTS (and their blog seems to agree “Qt 6.2 is also the first release of Qt 6 that will be long-term supported by The Qt Company for Qt commercial customers.” - so it’s a bit of a churn for people who have a development team of 1, don’t make any money, etc.pp

                                                                            And the upcoming Ubuntu 22.04 seems to have 5.15, so I guess my safe bet on depending on that version falls flat if I want Windows support (EOL, see above)..

                                                                            This is kind of a big mess, just trying to summarize it :P

                                                                            1. 1

                                                                              Small addendum, I just installed Qt 6.3.0 and QtCreator 7 on Windows 10 and both my GUI apps actually could be built with a (different) one-line change each, I’m impressed.

                                                                        1. 1

                                                                          While I can very much sign this rant it’s a bit meh because it’s neither new nor insightful. Basically it’s been like this for 20 years and I actually think more projects are taking their time to make this work at all. So it’s better than before.

                                                                          Chromium does have a way to import new root signatures but it then marks them as untrusted and refuses to use them.

                                                                          This seemed to work fine here.

                                                                          I started a living document of stuff I run into and how to fix it. https://f5n.org/blog/2022/development-and-proxies/ (I forgot apt and I don’t use snaps or flatpak atm).

                                                                          1. 4

                                                                            I also prefer that subdomain scheme but I’m not sure it’s a good solution for everything, but sometimes it is:

                                                                            Take twitter as an example. They had to ‘claim’ all their own urls from the start or have to delete users at random if their head of product suddenly wants to have a promo at /awesome. That’s planning 15 years into the future or don’t have the possibility to do that.

                                                                            For some totally subjective reason having a subdomain feels more like I own it to me. Of course it would be all the same to wordpress.com whether they yank my foo.wp.com over my wp.com/foo - but maybe because I come from a time where you actually typed out your urls instead of googling for parts of them. And when people actually used www. ;)

                                                                            That said, I’ve never even seen a framework that supports hostname-based routing out of the box but I’ve written my own several times, and supporting custom domains (without iframes or forwards) is a big one to me. Then again I have my own soup/tumblr clone running and actually separate topics by hostname, so of course I am biased.

                                                                            I never thought about the identity leak thing, and it’s a good argument to have, but for the content I host on the web it doesn’t matter and I absolutely prefer the thing that looks better to me.

                                                                            1. 5

                                                                              Suggest devops and debugging tags, since this is an outage thing. scaling is more for “how do we scale something”. :)

                                                                              1. 2

                                                                                | xargs -P ;)

                                                                              1. 21

                                                                                Dear Rubyists! Please stop use “magic” as a synonym of “metaprogramming”!

                                                                                I am not a Rubyist, so I’ll absolutely continue calling it magic. If I can’t see it in the code and if I can’t grep for it, it’s not explainable. I am happy to read the docs, if I get /any/ pointer what to search for. If it’s not discoverable because it comes hand wave somewhere, there’s no point in not calling it magic.

                                                                                1. 8

                                                                                  Absolutely agreed. From the article:

                                                                                  “Is it magic? I don’t see any #drive! method here, but it magically works???”

                                                                                  Any sane developer would laugh. No, silly, it is just inheritance. We can guess that #drive! method defined in parent Car class, and can easily find this class’ and method’s code

                                                                                  If you think reliably finding the definition of the method is easy you probably don’t know much about how Ruby works, pal!

                                                                                  He’s using “junior developers” as a scapegoat when saying it’s fine to make things more complex than they need to be, but like … what have you gained here, really? If you have two alternatives and one of them is understandable by a junior developer and one isn’t, the second one better be a goddamn miracle in terms of value to justify its inclusion.

                                                                                  His rubyist background also leads him to conflate “metaprogramming” with “hard to tell what’s really going on” but that link is a correlation, not a law. It’s perfectly possible to metaprogram in ways that are transparent and clear. (though maybe not in Ruby)

                                                                                  Although in the end, I do prefer “spooky action at a distance” to “magic” when describing the problems of unclear code like the examples in the article.