• 6 Posts
  • 975 Comments
Joined 1 year ago
cake
Cake day: January 3rd, 2024

help-circle
  • What should I do / think about?

    I’ve been in your shoes, and I did eventually make a move for a challenge.

    Then I moved back, after I got that urge out of my system. So my best advice, that I followed and it paid off, is leave on good terms, if you leave.

    I had to process the transition that I’m no longer primarily paid for making things but for availability and mentorship.

    If I was paid hourly for making things, I could never make a living wage. I simply work too fast initially, and I no longer waste enough hours on fixing my past mistakes.

    So now I spend an inordinate amount of my time training on whatever amuses me that might someday be valuable to my employer. And I prioritize taking breaks in my schedule to mentor and explain things to peers - whenenver I can afford to. I’m genuinely very good at what I do, so “whenever I can afford to” is astonishingly often.

    Eventually that transition to availability and mentorship led to a promotion into roles that demand it more. So I accepted a promotion into management and then read a crap ton of management books.

    I’m still a renegade manager whose boss understands that I’ll do some coding whenever I please…I mean, whenever my other duties allow.


  • My position in the company is pretty good and I could probably ride it out until I die or the company picks up on the fact that my output has dropped due to the lack of caring. But that eats at my soul and it isn’t fair to my coworkers.

    Let me push back a bit on “isn’t fair to my coworkers”.

    I have worked many times with a cranky senior technician who has seen almost everything before and barely gives a shit to do more than the bare minimum.

    I adore working with this person. There’s never any drama. They get their work done barely but consistently before deadlines. Their work is done correctly more often than my own work is (and I’m quite good, honest). And once in awhile they’re generous enough with their time to pull my ass out of the fire of my own incompetence (everyone fails sometimes) with their advice.

    Once you’ve hit the point where things are easy for you that are hard for everyone else, I find your bare minimum effort is more than fair and generous to peers like myself.



  • What do you suppose bash could do here?

    • For the love of all that is holy, it’s not 1970, we don’t need to continue to tolerate “if … fi”
    • Really everything about how bash handles logic bridging multiple lines of a file. (loops, error handling, etc)

    I’m sure there’s space for a clear alternative to arise though, as far as scripting languages go.

    The first great alternative/attempt does exist, in PowerShell. (Honorable mention to Zsh, but I find it has most of the same issues as bash without gaining the killer features of pwsh.)

    But I’m a cranky old person so I despise (and deeply appreciate!) PowerShell for a completely different set of reasons.

    At the moment I use whichever gets the job done, but I would love to stop switching quite so often.

    I hold more hope that PowerShell will grow to bridge the gap than that a fork of bash will. The big thing PowerShell lacks is bash’s extra decades of debugging and refinement.


  • it’s (bash) good enough for small tasks that you don’t expect to grow in complexity.

    I don’t think you’ll get a lot of disagreement on that, here. As mention elsewhere, my team prefers bash for simple use cases (and as their bash-hating boss, I support and agree with how and when they use bash.)

    But a bunch of us draw the line at database access.

    Any database is going to throw a lot of weird shit at the bash script.

    So, to me, a bash script has grown to unacceptable complexity on the first day that it accesses a database.


  • That said, I don’t necessarily agree that bash is bad from a maintainability standpoint.

    My team uses bash all the time, but we agree (internally as a team) that bash is bad from a maintainability perspective.

    As with any tool we use, some of us are experts, and some are not. But the non-experts need tools that behave themselves on days when experts are out of office.

    We find that bash does very well when each entire script has no need for branching logic, security controls, or error recovery.

    So we use substantial amounts of bash in things like CI/CD pipelines.



  • I actually (also) love bash, and use it like crazy.

    What I really hate is that bash is so locked in legacy that it’s bad features (on a scripting language scale, which isn’t fair) (and of which there are too many to enumerate) are now locked in permanently.

    I also hate how convention has kept other shells from replacing bash’s worst features with better modern alternatives.

    To some extent, I’m railing against how hard it is to write a good Lexer and a Parser, honestly. Now that bash is stable, there’s little interest in improving it. Particularly since one can just invoke a better scripting language for complex work.

    I mourn the sweet spot that Perl occupies, that Bash and Python sit on either side of, looking longingly across the gap that separated their practical use cases.

    I have lost hope that Python will achieve shell script levels of pragmatism. Although the invoke library is a frigging cool attempt.

    But I hold on to my sorrow and anger that Bash hasn’t bridged the gap, and never will, because whatever it can invoke, it’s methods of responding to that invocation are trapped in messes like “if…fi”.


  • A few responses for you:

    • I deeply despise bash (edit: this was hyperbole. I also deeply appreciate bash, as is appropriate for something that has made my life better for free!). That Linux shell defaults settled on it is an embarrassment to the entire open source community. (Edit: but Lexers and Parsers are hard! You don’t see me fixing it, so yes, I’ll give it a break. I still have to be discerning for production use, of course.)
    • Yes, Bash is good enough for production. It is the world’s current default shell. As long as we avoid it’s fancier features (which all suck for production use), a quick bash script is often the most reasonable choice.
    • For the love of all that is holy, put your own personal phone number and no one else’s in the script, if you choose to use bash to access a datatbase. There’s thousands of routine ways that database access can hiccup, and bash is suitable to help you diagnose approximately 0% of them.
    • If I found out a colleague had used bash for database access in a context that I would be expected to co-maintain, I would start by plotting their demise, and then talk myself down to having a severe conversation with them - after I changed it immediately to something else, in production, ignoring all change protocols. (Invoking emergency change protocols.)

    Edit: I can’t even respond to the security concerns aspect of this. Choice of security tool affects the quality of protection. In this unfortunate analogy, Bash is “the pull out method”. Don’t do that anywhere that it matters, or anywhere that one can be fired for security violations.






  • The ability to stream media from legit paid sources. (Netflix, Comcast, max, disneyplus, prime, I don’t know where the list is currently, but anything that bitches about user agent.)

    Agreed, that’s critical. That said, I periodically subscribe to all of those, and all of the ones I’ve tried in the last year on Firefox on Debian, have worked perfectly. If there’s any left that still don’t, I haven’t tried/encountered them.