Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "command-line"
To IT: I can no longer clone GitHub repos from the command line.
From IT… Hello DevOps engineer…. You’re no longer allowed to use port 22. It’s not safe. All traffic must be port 443.
New developers. Tip: There is no silver bullet.
If you like Python, please understand GIL's behavior before making a system that handles thousands of requests.
If you like Java, know that "Write once, run anywhere" is a fallacy. Even application servers don't like the same WAR.
If you like PHP, understand the life cycle of a request before connecting to the database from all corners.
If you like C#, don't make it a small command-line application that will be used on FreeBSD.
If you like C, meet valgrind.
If you like C++, templates are cool, but don't overdo it. And take the opportunity to meet valgrind.
Never use the same tool to do everything. Elect the language and framework for the given need with rationality.
Every time I see a "Java Man", a "C++ Chad" or anything like that, it comes to mind that if he were a carpenter, he would be tightening screws with hammers.
Every lock-in is bad.11
The Linux sound system scene looks like it was deliberately designed to be useless.
ALSA sees all my inputs and outputs, but it can't be used to learn (or control) anything about software and where their sound goes. Plus it's near impossible to identify inputs and outputs.
PulseAudio does all sorts of things automatically, but it's hard to configure and has high latency.
JACK is very convenient to configure, has great command line tools (like you'd expect from Linux), is scriptable, but it doesn't see things.
Generally, all of these see the others as a single output and a single input, which none of them are.11
I'm forced by my job to use this fucking unusable piece of horse shit also know as a Windows operating system.
And it's not only that I have experienced every fucking corner case bug that is possible to occur in our universe.
Not only that that for last 2 years I seen more blue screen than blue sky.
Not only that forced updates fucked my schedules so many times that now I'm really *afraid* to turn off my computer off because I have zero guarantee that I will be able to restart it in a reasonable amount of time.
No, neither of those broke me.
The thing that kills me everyday is, piece by piece ...
WHY THE FUCK THERE IS NO SINGLE, USEABLE, SANE TERMINAL EMULATOR ON WINDOWS
I JUST WANT TO TYPE SOME COMMANDS, COPY/PASTE TEXT AND SCROLL
IS IT TO MUCH ?????
FUCK ALL THOSE WANKY THIRD-PARTY EMULATORS
FUCK EVERY-COMMAND-LINE-REALATED THING ON WINDOWS
FUCKING USLESS SHIT
CANT EVEN DO SOME SSH COPY/PASTE SHIT
WITHOUT SOME WEIRD CHARACTERS POPING OUT EVERYWHERE.
AND FUCK THAT EVERY ONE OF THOSE MUST HAVE TOTTALY DIFFERENT SET OF KEY SHORTCUTS
AND THAT FUCKING BELL
WHY WOULD YOU EVEN PUT A FUCKING BELL SOUND AS DEFAULT SETTING ??
GO TO HELL MICROSOFT
I WANT MY LINUX BACK7
Mgr: composer require. That's all you're allowed to do. I want you to manually go through our word press site, check which ones need an update. And do a composer require in the command line for each to update them.
Me: wouldn't it make more sense to just increment the version in the composer.json and then run update?
Mgr: no, you don't understand how composer works, it's very complicated. Just do require. Don't ever do update.
Me: *does it anyway (reverting later of course) and compares update vs require and their differences in the lock file*
I mean it looks like 'update' is updating important dependencies for each of the packages as well as the package itself... The 'require' just seems to download the package itself but no updates to dependencies for those packages.
But seriously is composer that complicated that I can't just do an 'update'?
I've been reading the composer documentation and it seems to be saying that update is the better way to go...
I'm doubting myself these days...12
A custom script that makes a Jira ticket, assigns it to me, marks it as in progress, check out a git branch, set the commit title and the Jira title to my command line argument…. Push, open a PR, and fuck it, merge that shit too.
I checked all the corporate boxes and you got the typo fixed.
What game engine would you recommend to an indie developer? The type who can't afford a fucking server to run the bloated and buggy unity editor but is actually a developer so isn't afraid of typing.
I've had enough of the improper sandboxing (will crash bc of game scripts), tempfile-based crash-unaware instance tracking (won't restart afterwards) and lack of UI scaling (seriously, that's like accessibility/retina support basics) that is the unity editor. If they had command line tools I'd use them happily.11
I used to think that I had matured. That I should stop letting my emotions get the better of me. Turns out there's only so much one can bottle up before it snaps.
Allow me to introduce you folks to this wonderful piece of software: PaddleOCR (https://github.com/PaddlePaddle/...). At this time I'll gladly take any free OCR library that isn't Tesseract. I saw the thing, thought: "Heh. 3 lines quick start. Cool.", and the accuracy is decent. I thought it was a treasure trove that I could shill to other people. That was before I found out how shit of a package it is.
First test, I found out that logging is enabled by default. Sure, logging is good. But I was already rocking my own logger, and I wanted it to shut the fuck up about its log because it was noise to the stuffs I actually wanted to log. Could not intercept its logging events, and somehow just importing it set the global logging level from INFO to DEBUG. Maybe it's Python's quirk, who knows. Check the source code, ah, the constructors gaves `show_log` arg to control logging. The fuck? Why? Why not let the user opt into your logs? Why is the logging on by default?
But sure, it's just logging. Surely, no big deal. SURELY, it's got decent documentation that is easily searchable. Oh, oh sweet summer child, there ain't. Docs are just some loosely bundled together Markdowns chucked into /doc. Hey, docs at least. Surely, surely there's something somewhere about all the args to the OCRer constructor somewhere. NOPE! Turns out, all the args, you gotta reference its `--help` switch on the command line. And like all "good" software from academia, unless you're part of academia, it's obtuse as fuck. Fine, fuck it, back to /doc, and it took me 10 minutes of rummaging to find the correct Markdown file that describes the params. And good-fucking-luck to you trying to translate all them command line args into Python constructor params.
"But PTH, you're overreacting!". No, fuck you, I'm not. Guess whose code broke today because of a 4th number version bump. Yes, you are reading correctly: My code broke, because of a 4th number version bump, from 22.214.171.124, to 126.96.36.199, introducing a breaking change. Why? Because apparently, upstream decided to nest the OCR result in another layer. Fuck knows why. They did change the doc. Guess what they didn't do. PROVIDING, A DAMN, RELEASE NOTE. Checked their repo, checked their tags, nothing marking any releases from the 3rd number. All releases goes straight to PyPI, quietly, silently, like a moron. And bless you if you tell me "Well you should have reviewed the docs". If you do that for your project, for all of your dependencies, my condolences.
Could I just fix it? Yes. Without ranting? Yes. But for fuck sake if you're writing software for a wide audience you're kinda expected to be even more sane in your software's structure and release conventions. Not this. And note: The people writing this, aren't random people without coding expertise. But man they feel like they are.6
oh, I have a few mini-projects I'm proud of. Most of them are just handy utilities easing my BAU Dev/PerfEng/Ops life.
- bthread - multithreading for bash scripts: https://gitlab.com/netikras/bthread
- /dev/rant - a devRant client/device for Linux: https://gitlab.com/netikras/...
- JDBCUtil - a command-line utility to connect to any DB and run arbitrary queries using a JDBC driver: https://gitlab.com/netikras/...
- KubiCon - KuberneterInContainer - does what it says: runs kubernetes inside a container. Makes it super simple to define and extend k8s clusters in simple Dockerfiles: https://gitlab.com/netikras/KubICon
- ws2http - a stateful proxy server simplifying testing websockets - allows you to communicate with websockets using simple HTTP (think: curl, postman or even netcat (nc)): https://gitlab.com/netikras/ws2http
After deleting an AskUbuntu question due to peer pressure pointing out that it is "off-topic because parts are off-topic, and parts are written as a rant in disguise", I decided that DevRant is where to repost this instead:
As a user, how can I make sure to keep my applications as a user without keeping obsolete software packages?
Upgrading to Ubuntu 22.04 LTS (Jammy Jellifish) using the Software Updater GUI removes a working installation of the zoom video meeting application, without installing any upgrade, during the "cleanup" step.
Unfortunately, we can only choose either to remove or keep all suggested removals. While every other removal seemed fine and had a good explanation (either an outdated version number or the move to update Firefox via snap packages in the future), only zoom, at the end of the list, was scheduled for removal without any replacement.
After proceeding with the removals and restarting my computer, as expected, zoom is gone.
I am posting this to inform others before the upgrade, but also trying to help solve the problem, so that either there should be an option to select which packages to keep or remove (maybe there is when using the command line instead of the GUI?) or not to suggest to remove zoom at all. If it had been removed as an outdated third-party source without official 22.04 support, it would have been helpful to communicate that more explicitly.
As the latest zoom version, 5.12.2 (4816) deb (for Ubuntu 16.04+), obviously supports everything from 16.04, there should be no reason at all to remove zoom when upgrading an Ubuntu distribution.
Student 18/M looking for reliable partner.
I like tinkering, I like the command line and I find i3 convenient, but I also often just need to get things done, I want my os to be rock solid, and I would prefer debian based because I need to run lesser known/supported software occasionally.7
Ok, so: I have a macbook for work. And for the most part, I love it. Its a good looking device that has a fast cpu, enough ram to run stuff locally for testing, even multiple services / environments at the same time without getting overly sluggish.
And, the best thing: It isn't Windows. I have a good, working shell (zsh), so I can use all the command line tooling I could wish for, I have a somewhat working package manager and everything.
But there are just some little things I really can't wrap my head around. And since everything is so locked in by Apple, there are no sensible ways to fix those things without having a bunch of extra programs / services running all the time, introducing overhead, configuration for things I neither want nor need, and so on.
First of all, why the hell did you think the normal way of typing "@" on a german iso keyboard is the key combination for closing the currently focused application? I am a daily user of macos for over 2 years now, and I still keep quitting applications regularly, almost every day.
Or, scroll direction: I use a mouse (g pro wireless) and not just the touchpad, but when I am in a meeting or something (or when I take my macbook with me to configure a switch that isn't accessible over the network), I don't want to take the mouse with me, the touchpad is pretty good, it is big, precise and everything. But for some dumb reason, they decided to reverse the scroll direction for the mouse by default, so if you change that to use the mouse like a normal person, it also changes the scroll direction for the touchpad. And, the worst part is: there doesn't seem to be ANY easy way to separate those two settings, or to automatically set the scroll direction when a mouse is connected.
So every time I use my laptop somewhere else, wich also happens regularly, the scroll directions is wrong, which means I have to go into the settings, change it, then change it back when I am at my desk again.
It just doesn't make any sense, stop trying to "know what our customers want", and please, dear Mr. Tim Apple, give your customers the freedom to know for themselves what they want.
Thanks for listening to my TED Talk.8
It doesn't seem to matter what framework I pick to learn next. I rarely get past the Installation step where I have to install and learn a bunch of command line tools first.
It makes me realize I no longer want to be a web developer as even the biggest step I can reasonably make in my career will still not result in an income change significant enough to pay for a mortgage, and the smallest step still expects me to understand all of these command line tools for seemingly no payoff whatsoever.
I feel stuck and depressed looking at all the toxic positivity on LinkedIn. I cannot fathom the amount of indoctrination that must be going on between all these people chirping about how great it is to work for their company.7
JUST FUCKING NOTHING WORKS!
ERROR HERE ERROR THERE.
Then i tried to copy the exact sample code and it ALSO DIDN'T WORK.
AND THEN FUCKING VSCODE shows errors THAT AREN'T EVEN THERE. THEY MAYBE WERE THERE 10 MINUTES AGO. IS THIS SOME FUCKING INTERNET EXPLORER SHIT. ALSO COMPILING THROUGH IT DOESN'T WORK JUST THROUGH THE COMMAND LINE. AAAAAAAAAAAAAAAAAAAAAAAAAAAAH FUCK IT8
I seem to have built my app and tagged it as caddy:alpine by accident. How does this happen and why does Docker allow you to override images without specifying something as obvious as --override-registry-image on the command line?7
Ok, we were troubleshooting a network connection problem. My boss told me: use fping, a small command line utility that gives you a timestamped ping. We can then check when did the connection go down. Ok. Since I've always advocated the importance of knowing advanced scripting tools, i tried to do it with powershell. I've been playing with Test-Connection for an hour to try to get not only the timestamp when the connection is ok, but the timestamp when the connection is down. Don't want to go into details. I've just a question. A solution that allows you to do such an easy task in say 20 lines of code is the proof that the system works or that it doesn't work? To make long story short, now i'm downloading fiping.6
Linux users needing to run literally ANY script again:
Hey so I'm guessing embedding mysql is probably pretty much just creating a custom install under a subdirectory and starting it with a special config file with a custom port etc.
but is it possible with a single package and command line or is mssql possible to embed as well ?
that last interests me more. I prefer t-sql.7
Let's exclude some files from our coverlet coverage test!
Sure! That's easy, just remember to pass this super short, understandable, and rememberable command-line argument:
You're fucking kidding me, right?
It's 2022 and tools are still using PowerShell syntax... just kill me1
What's the minimal feature set that can make a language as ornamented as JS into a comfortable REPL?
Should I write a full parser or should I try to patch my way around with regex?
It will have to interface a lot with JS so it has to be able to manage JS datastructures in some fashion, which means that I can't just make a whole new command line with its own programs.
My current plan:
Some delimiter (probably a semicolon) will take the output of a command and inject it in the next in case you decide halfway through a line to do some more processing, It also awaits promises and does some other nice stuff to make controlling such pipelines easy. I have an elaborate system in mind to decide where a value must be injected to make the line valid so in most cases you don't even have to indicate it. JS has beautifully simple syntax rules so I have a lot of technical balance to burn before I start building technical debt.
I have some ideas for automatic parentheses and commas in function calls. I realize while using a command line you do not want to tap shift often. My main idea here is that two names or values in js are always joined by an operator so the first missing operator is a call and following missing operators are commas until the end of line. This has lots of nasty edge cases though, like that no argument expression can begin with a unary operator or a bracket of any shape. You can always prepend a comma but it's cognitive load.
Anyway, do you have any suggestion or warning besides "js bad" which I know but it's the most popular sandboxable language and has a massive existing set of libraries which I kinda need.3